2015-11-24 125 views
3

我想從運行PSQL以下命令行參數化查詢:如何運行PostgreSQL的命令行參數化查詢

SELECT * 
FROM users 
WHERE username = :username; 

如何設置在命令行上的用戶名參數?

我嘗試這樣做:

\set username 'john' 

但是當我運行查詢,我收到以下錯誤信息:

ERROR: column "john" does not exist 
LINE 3: WHERE username = john; 
         ^

回答

3

psql文檔,到psql變量替換成一個字符串一個文字,使用:'variablename'

這實際上並不是一個通常意義上的參數化查詢,因爲變量是刑警組織添加到查詢字符串中。然而,psql知道要轉義單引號,所以變量值');DROP TABLE users;--將逐字顯示,而不是結束字符串並運行不需要的SQL。

+0

太棒了!感謝澄清。 – Naresh