我想从 psql 命令行运行以下参数化查询:
SELECT *
FROM users
WHERE username = :username;
如何在命令行中设置用户名参数?
我试过这个:
\set username 'john'
但是当我运行查询时,我收到以下错误消息:
ERROR: column "john" does not exist
LINE 3: WHERE username = john;
^
最佳答案
根据 psql
文档,要将 psql
变量作为文字替换为字符串,请使用 :'variablename'
这并不是通常意义上的参数化查询,因为变量被插入到查询字符串中。不过,psql
知道要转义单引号,因此变量值 ');DROP TABLE users;--
将按字面意义出现,而不是结束字符串并运行不需要的 SQL。
关于postgresql - 如何从 PostgreSQL 命令行运行参数化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33905993/