我需要在Linux中創建腳本。有這樣的命令:Postgres - 從CLI更新命令
psql -U postgres -d ticketon -c "UPDATE "user" SET "password" = 'test'"
當我把它放在引號中,就有錯誤。當用引號標出時,也有錯誤。我嘗試了幾乎所有的東西,但仍然沒有成功。有誰知道什麼是正確的語法?
我需要在Linux中創建腳本。有這樣的命令:Postgres - 從CLI更新命令
psql -U postgres -d ticketon -c "UPDATE "user" SET "password" = 'test'"
當我把它放在引號中,就有錯誤。當用引號標出時,也有錯誤。我嘗試了幾乎所有的東西,但仍然沒有成功。有誰知道什麼是正確的語法?
如何a_horse_with_no_name說。
psql -U postgres -d dbName -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 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
另一個很好的理由,以避免表(或列)其他需要引用名字...... –
不可考,但我想嘗試'的psql -U Postgres的-d ticketon -c「UPDATE \」用戶\ 「SET \」密碼\「='test'」' –
優秀。非常感謝:-D – MakoBuk