使用 psql 接口设置数组
Set array using psql interface
我有一个函数可以将用户从数组添加到数据库,例如
psql -c "SELECT addUsersFromList(array['userA','userB','userC'])"
这很好用,但是我希望能够 运行 将其作为脚本,如下所示:
psql -f add_users.sql -v userlist=array['userA','userB','userC'])
和add_user.sql:
SELECT addUsersFromList(:userlist);
当我执行上面的psql命令时,出现错误:
psql:Scripts/add_users.sql:39: ERROR: column "userA" does not exist
这似乎是我如何使用 -v 标志的问题。我查看了同一页面上 -v、\set 和变量部分的 postgres documentaion,但找不到分配数组的方法。
尝试将数组写成字符串文字:
psql -f add_users.sql -v "userlist='{userA,userB,userC}'"
我有一个函数可以将用户从数组添加到数据库,例如
psql -c "SELECT addUsersFromList(array['userA','userB','userC'])"
这很好用,但是我希望能够 运行 将其作为脚本,如下所示:
psql -f add_users.sql -v userlist=array['userA','userB','userC'])
和add_user.sql:
SELECT addUsersFromList(:userlist);
当我执行上面的psql命令时,出现错误:
psql:Scripts/add_users.sql:39: ERROR: column "userA" does not exist
这似乎是我如何使用 -v 标志的问题。我查看了同一页面上 -v、\set 和变量部分的 postgres documentaion,但找不到分配数组的方法。
尝试将数组写成字符串文字:
psql -f add_users.sql -v "userlist='{userA,userB,userC}'"