小编Mic*_*eco的帖子

如何通过 psql \i 命令将参数传递给 sql 脚本

psql\i命令能够执行给定的 SQL 脚本,但我需要一种将参数传递给脚本的方法。

示例:假设您有这个简单的脚本

select * from :table LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

我试过了

my_db=> \i my-script.sql -v table="core.product"
Run Code Online (Sandbox Code Playgroud)

但出现这个错误

psql:my-script.sql:1: ERROR:  syntax error at or near ":"
LINE 1: select * from :table LIMIT 1;
                      ^
\i: extra argument "-v" ignored
\i: extra argument "table="core.product"" ignored

Run Code Online (Sandbox Code Playgroud)

我知道在终端上运行它会起作用,但我已经在 psql 中了。

psql -v table="core.product" -f my-script.sql
Run Code Online (Sandbox Code Playgroud)

postgresql sql-injection psql

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

postgresql ×1

psql ×1

sql-injection ×1