【发布时间】:2020-04-05 06:57:36
【问题描述】:
我创建了下表:
"CREATE TABLE ParsonCollection "
+ "(id integer not null GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),"
+ "name varchar(20),"
+ "eye varchar(20),"
+ "hair varchar(20),"
+ "height varchar(20),"
+ "weight varchar(20),"
+ "PRIMARY KEY (id))";
然后我尝试插入表格,这就是我遇到问题的地方。当我尝试更改“id”列时,我收到一条错误消息“java.sql.SQLSyntaxErrorException: Attempt to modify an identity column 'ID'。”插入语句如下所示:
"insert into ParsonCollection values(" + q_surround(Name) + ","
+ q_surround(Eye) + "," + q_surround(Hair) + "," + q_surround(Height) + "," + q_surround(Weight) + ",1" + ")";
但是,当我删除插入“id”的字段时,我收到以下错误:“java.sql.SQLSyntaxErrorException:分配的值的数量与指定或隐含的列数不同。 "下面是这个插入语句的样子:
"insert into ParsonCollection values(" + q_surround(Name) + ","
+ q_surround(Eye) + "," + q_surround(Hair) + "," + q_surround(Height) + "," + q_surround(Weight) + ")";
我该如何克服这个问题?似乎当我解决一个异常时,会弹出另一个异常,反之亦然。谢谢。
【问题讨论】:
-
.... 请注意,您正在执行的字符串连接容易受到 SQL 注入的攻击。虽然它不能解决您当前的问题,但您应该使用 Prepared Statement。
标签: java sql jdbc netbeans db2