使用psql接口设置数组

问题描述

我有一个功能,可以将用户从数组添加数据库中,例如

psql -c "SELECT addUsersFromList(array['userA','userB','userC'])"

这很好用,但是我希望能够以脚本形式运行它,就像这样:

psql -f add_users.sql -v userlist=array['userA','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}'"