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

Bạn sử dụng các biến script trong psql như thế nào?

Các biến postgres được tạo thông qua lệnh \ set, chẳng hạn ...

\set myvariable value

... và sau đó có thể được thay thế, chẳng hạn như ...

SELECT * FROM :myvariable.table1;

... hoặc ...

SELECT * FROM table1 WHERE :myvariable IS NULL;

chỉnh sửa:Kể từ psql 9.1, các biến có thể được mở rộng trong dấu ngoặc kép như trong:

\set myvariable value 

SELECT * FROM table1 WHERE column1 = :'myvariable';

Trong các phiên bản cũ hơn của máy khách psql:

... Nếu bạn muốn sử dụng biến làm giá trị trong truy vấn chuỗi có điều kiện, chẳng hạn như ...

SELECT * FROM table1 WHERE column1 = ':myvariable';

... thì bạn cần phải bao gồm các dấu ngoặc kép trong chính biến vì cách trên sẽ không hoạt động. Thay vào đó, hãy xác định biến của bạn như vậy ...

\set myvariable 'value'

Tuy nhiên, nếu, giống như tôi, bạn gặp phải tình huống mà bạn muốn tạo một chuỗi từ một biến hiện có, tôi đã tìm ra mẹo là thế này ...

\set quoted_myvariable '\'' :myvariable '\''

Bây giờ bạn có cả biến được trích dẫn và không được trích dẫn của cùng một chuỗi! Và bạn có thể làm điều gì đó như thế này ....

INSERT INTO :myvariable.table1 SELECT * FROM table2 WHERE column1 = :quoted_myvariable;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tải kết xuất Postgres sau khi docker-soạn lên

  2. Cách đánh dấu nr hàng nhất định trong bảng khi truy cập đồng thời

  3. Sao chép một vài cột của tệp csv vào bảng

  4. Các tình huống thất bại PostgreSQL phổ biến nhất

  5. Trong Postgresql, buộc duy nhất trên sự kết hợp của hai cột