Postgresql Postgres-从CLI更新命令
我需要在linux中创建脚本。有如下命令:Postgresql Postgres-从CLI更新命令,postgresql,sql-update,command-line-interface,Postgresql,Sql Update,Command Line Interface,我需要在linux中创建脚本。有如下命令: psql -U postgres -d ticketon -c "UPDATE "user" SET "password" = 'test'" 当我把它放在引号里时,有一个错误。当超出引号时,也会出现错误。我几乎什么都试过了,但还是没有成功。有人知道什么是正确的语法吗?我最近也在做类似的事情。 您要做的是首先执行登录(psql-U postgres-d ticketon-c),然后通过STDIN管道执行您希望执行的查询(“UPDATE”user“SE
psql -U postgres -d ticketon -c "UPDATE "user" SET "password" = 'test'"
当我把它放在引号里时,有一个错误。当超出引号时,也会出现错误。我几乎什么都试过了,但还是没有成功。有人知道什么是正确的语法吗?我最近也在做类似的事情。 您要做的是首先执行登录(
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不喜欢处理双引号。如果您在此处使用sh文档,则无需过度引用。
:
#!/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
#/垃圾箱/垃圾箱
psql-U postgres-d ticketon一匹没有名字的马是怎么说的
psql -U postgres -d dbName -c "UPDATE \"user\" SET \"password\" = 'test'"
避免使用需要引用的表(或列)名的另一个很好的理由是…无法测试,但我会尝试psql-U postgres-d ticketon-c“UPDATE\”user\“SET\”password\“=“test”
非常好。非常感谢:-我强烈反对在名字周围加上双引号,我非常同意没有名字的马。这是一个多么草率的混乱局面,这只是一个简单的update语句。