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

Sử dụng tham số vị trí ($ 1, ..) trong psql

Bạn có thể sử dụng biến psql . Chúng được nội suy trong mã SQL. Theo tài liệu:

Lưu ý rằng ( theo tài liệu ):

Vì vậy, bạn không thể làm việc với các tham số vị trí của biểu mẫu $1 . Tôi giả sử bạn sao chép những đoạn mã này từ các thân hàm và đó là lý do cho các tham số vị trí?
Kể từ PostgreSQL 9.2, ngay cả các hàm SQL cũng có thể tham chiếu các tham số theo tên. Theo tài liệu:

Các hàm PL / pgSQL đã hỗ trợ các tham số được đặt tên trong thân hàm kể từ v8.0.

Quy ước đặt tên ưa thích của tôi là thêm trước các tham số hàm với _ để tránh xung đột đặt tên. Nhưng đó là vấn đề về sở thích và phong cách.

Chỉ một nửa giải pháp

Vì vậy, ví dụ của bạn có thể hoạt động như sau:

db=> \set _name 'troy'
db=> \set _email '[email protected]'
db=> select * from users where name=:'_name' and email=:'_email'; 

Bạn vẫn phải chuẩn bị các chuỗi truy vấn ...
Lưu ý các dấu ngoặc kép trong :'_name' . Điều đó có tác dụng tương tự như việc áp dụng quote_literal() trên chuỗi. Chi tiết trong sách hướng dẫn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm PLpgSQL không trả về các tiêu đề phù hợp

  2. Làm thế nào để truyền tham số cho câu lệnh sql 'in'?

  3. Các câu lệnh nhập trong plpython được xử lý như thế nào?

  4. LỖI:không thể mở rộng tệp pg_tblspc / 4815857 / PG_11_201809051 / 16321:Không còn dung lượng trên thiết bị

  5. Cách so sánh hai mảng và chỉ chọn các phần tử không phù hợp Trong postgres