我需要在linux中创建脚本。有如下命令:
psql -U postgres -d ticketon -c "UPDATE "user" SET "password" = 'test'"
当我把它用于引号时,有错误。超出引号时,也有错误。我几乎尝试了一切,但仍然没有成功。有谁知道什么是正确的语法?
答案 0 :(得分:4)
a_horse_with_no_name如何说。
psql -U postgres -d dbName -c "UPDATE \"user\" SET \"password\" = 'test'"
答案 1 :(得分:0)
我最近做了类似的事情。
您要做的是首先执行登录(psql -U postgres -d ticketon -c
),然后通过STDIN管道您要执行的查询("UPDATE "user" SET "password" = 'test'"
)。在bash中,这将是以下内容:
echo "UPDATE "user" SET "password" = 'test'" | psql -U postgres -d ticketon -c
上述方法可能比单独使用-c
命令更好,因为postgres不喜欢处理双引号。
答案 2 :(得分:0)
如果您使用sh here document
:
#!/bin/sh
psql -U postgres -d ticketon <<XXX
UPDATE "user"
SET password = 'test'
WHERE username = 'James' -- I think a where clause is needed here ...
;
XXX