Postgres thường không sử dụng các biến trong SQL thuần túy. Nhưng bạn có thể làm điều đó quá:
SET foo.test = 'SELECT bar FROM baz';
SELECT current_setting('foo.test');
Đọc về các Tùy chọn Tùy chỉnh trong sách hướng dẫn.
Trong PostgreSQL 9.1 hoặc phiên bản cũ hơn, bạn cần khai báo custom_variable_classes
trước khi bạn có thể sử dụng nó.
Tuy nhiên, Bạn không thể EXECUTE
SQL động không có PL (ngôn ngữ thủ tục). Bạn sẽ sử dụng DO
lệnh để thực hiện các câu lệnh đặc biệt (nhưng bạn không thể trả về dữ liệu từ nó). Hoặc sử dụng CREATE FUNCTION
để tạo một hàm thực thi SQL động (và có thể trả về dữ liệu theo bất kỳ kiểu nào có thể tưởng tượng được).
Đảm bảo bảo vệ khỏi việc đưa vào SQL khi sử dụng SQL động.
Có liên quan:
- Có cách nào để xác định một hằng số được đặt tên trong truy vấn PostgreSQL không?