我有以下 MySQL 脚本,我想在 PostgreSQL 中实现。
SET @statement = search_address_query;
PREPARE dynquery FROM @statement;
EXECUTE dynquery;
DEALLOCATE PREPARE dynquery;
如何使用 PostgreSQL 定义用户定义的变量“@statement”。
Postgres 通常不在普通 SQL 中使用变量。但你也可以这样做:
SET foo.test = 'SELECT bar FROM baz';
SELECT current_setting('foo.test');
阅读手册中的自定义选项。
custom_variable_classes
才能使用它。
EXECUTE
动态 SQL。您可以使用 DO
命令来执行临时语句(但不能从中返回数据)。或者使用 CREATE FUNCTION
创建一个执行动态 SQL 的函数(并且可以以任何可以想象的方式返回数据)。
使用动态 SQL 时请务必防范 SQL 注入。
相关: