gpt4 book ai didi

java - 尝试使用 H2 数据库更新 JDBC ResultSet 时出现异常

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:51 24 4
gpt4 key购买 nike

我尝试使用 ResultSet 将一行插入到 H2 数据库 (1.4.182) 中。通过调用 insertRow,程序会抛出异常。我不知道问题出在哪里。

异常(exception)情况是:

The result set is not updatable. The query must select all columns from a unique key.
Only one table may be selected. [90127-182]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.message.DbException.get(DbException.java:144)
at org.h2.jdbc.JdbcResultSet.getUpdatableRow(JdbcResultSet.java:3081)
at org.h2.jdbc.JdbcResultSet.insertRow(JdbcResultSet.java:2966)
at JdbcResultSetUpdate.main(JdbcResultSetUpdate.java:26)

程序执行创建ResultSet的SQL语句是:

"select NAME from TEST.TST_DOZENT"

TST_DOZENT 由语句创建:

"CREATE TABLE TEST.TST_DOZENT (NAME VARCHAR(50))", "Create TST_DOZENT-Tab"

所以查询语句不使用系统表,该表没有主键。

java语句对象的创建者:

con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

我无法弄清楚问题是什么或我做错了什么。

如有任何帮助,我将不胜感激。

谢谢你的阅读。

最佳答案

表需要有主键或唯一索引,查询需要包含该列。示例:

CREATE TABLE TEST.TST_DOZENT (ID PRIMARY KEY, NAME VARCHAR(50));
SELECT ID, NAME FROM TEST.TST_DOZENT;

关于java - 尝试使用 H2 数据库更新 JDBC ResultSet 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27480109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com