PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Đối số dòng lệnh PSQL trong tập lệnh DO

Bởi vì các khối PL thực sự là các hằng số văn bản trong mã nên các biến bên trong không được thay thế bên trong chúng theo cách thông thường. May mắn thay, có thể sử dụng biến phiên để chia sẻ dữ liệu giữa các khối SQL / PL khác nhau:

set foo.bar to :v1; -- Name should contains the dot, don't ask me why 
show foo.bar; -- Check that the value was assigned 
do $$
declare
  myvar text := current_setting('foo.bar');
begin
  raise info '%', myvar; -- Output variable value
end $$;

Để đảm bảo rằng biến được gán và đặt giá trị mặc định nếu nó không phải là:

\if :{?v1}
  set foo.bar to :v1;
\else
  set foo.bar to 'default';
\endif

Thêm chi tiết:
https://www.postgresql.org/docs/current/app-psql.html#PSQL-METACOMMAND-IFhttps://www.postgresql.org/docs/current/app-psql.html # APP-PSQL-INTERPOLATION



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MigrationSchemaMissing (Không thể tạo bảng django_migrations (% s)% exc)

  2. Chuyển động tên cột cho một biến bản ghi trong PostgreSQL

  3. Làm cách nào để tạo bản sao lưu của một bảng trong cơ sở dữ liệu postgres?

  4. Bí danh tham chiếu trong mệnh đề WHERE

  5. Làm cách nào để đặt tham số String [] cho một truy vấn gốc?