我有以下脚本,它通过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命令和我使用`,“和'的不同引号的组合有关系。