我有以下腳本,它通過ssh連接到遠程服務器,併發出關於它的SQL語句的PostgreSQL數據庫:Postgres的命令行語句:INSERT抱怨非現有列
#!/bin/bash
db_query() {
app_server="$1"
sql_stmt="$2"
psql_cmd="psql -d vdc --pset tuples_only -c '$sql_stmt'"
rows_count=`ssh $app_server "sudo su - postgres -c \"$psql_cmd\""`
echo "DB_QUERY: rows_count = $rows_count"
}
現在我試圖執行SELECT和INSERT語句如下表:
CREATE TABLE pb_properties
(
c_name character varying(255) NOT NULL,
c_value character varying(255),
CONSTRAINT pb_properties_pkey PRIMARY KEY (c_name)
)
此功能工作正常,如果我做一個SELECT語句:
#!/bin/bash
source db_query.sh
db_query staging "SELECT * FROM pb_properties;"
>> Output: DB_QUERY: rows_count = support-email | [email protected]
但是,如果我做一個INSERT語句不工作:
#!/bin/bash
source db_query.sh
db_query prestaging "INSERT INTO pb_properties (c_name, c_value) VALUES ('support-email', '[email protected]');"
>> Output:
>>ERROR: column "testname" does not exist
>>LINE 1: ...SERT INTO pb_properties (c_name, c_value) VALUES (testname, ...
^
>>DB_QUERY: rows_count =
現在我該怎麼做一個成功的INSERT語句與我db_query功能?我已經嘗試掩飾我嘗試以多種方式插入的值,但沒有一個能夠工作。我想這與通過SSH運行sql命令和我使用`,「和'的不同引號的組合有關係。