Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Postgres-从CLI更新命令_Postgresql_Sql Update_Command Line Interface - Fatal编程技术网

Postgresql Postgres-从CLI更新命令

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

我需要在linux中创建脚本。有如下命令:

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语句。