![](/img/trans.png)
[英]PostgreSQL and JDBC: Is `UPDATE table … RETURNING … INTO` supported?
[英]Postgresql Update JDBC
我想更新表:
id integer NOT NULL,
"first" character varying(255),
"last" character varying(255),
age integer,
CONSTRAINT registration_pkey PRIMARY KEY (id)
使用方法:
void updateTable(String tableName, String columnName, String value,
String columnName2, String value2) {
try {
String sql = "UPDATE " + tableName + " SET " + columnName + " = "
+ value + " WHERE " + columnName2 + " = " + value2;
stmt.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
如果我跑步
.updateTable("employees", "last", "11", "id", "100");
一切都很好,但是如果我嘗試
.updateTable("employees", "last", "xx", "id", "100");
我收到
org.postgresql.util.PSQLException: ERROR: column "xx" does not exist
Position: 29
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2270)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1998).....
你能告訴我問題出在哪里嗎?
您不應該通過直接通過字符串連接來放置變量來構建SQL。 這里發生的是,使用11,您的SQL變為:
set last=11
這是有效的SQL(使用11作為整數文字),而使用xx則變為:
set last=xx
沒有引號,因此SQL表示您正在讀取另一列的值,因此會出現錯誤消息。 由於您的值是一個字符串(進入varchar字段),因此需要將其用引號引起來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.