derby数据库操作比较难理解的错误及解决方法大全

本文详细解析了在SQL插入和更新操作中遇到的常见错误,包括空值不能插入到非空列、列名错误、尝试修改自动增长ID等问题,并提供了相应的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、插入(INSERT时报错)

1、错误:java.sql.SQLIntegrityConstraintViolationException: 列“test”无法接受空值。

   可能原因:建表时test列为not null 但插入数据时给与了null值

2、错误:java.sql.SQLSyntaxErrorException: 列“eeeq”不在 FROM 列表的任何表中,或者它出现在 join 规范内但超出 join 规范的作用域,或者它出现在 HAVING 子句中但不在 GROUP BY 列表中。如果这是 CREATE 或 ALTER TABLE 语句,则“eeeq”不是目标表中的列。

   可能原因:可能把INSERT INTO "testTable" ("test1", "test2", "test3") VALUES (‘eeeq’, 1, 2)写成了INSERT INTO "testTable" ("test1", "test2", "test3") VALUES ("eeeq", 1, 2)。其实就是说必须设置成‘eeeq’,其他格式eeeq、"eeeq"等都会报该错误

3、错误:java.sql.SQLSyntaxErrorException: 尝试修改标识列“ID”

   可能原因:id列设置了自动增长,但是添加数据的时候尝试给id列指定一个值

 

二、更新/修改(UPDATE/ALTER时报错)

1、错误:java.sql.SQLSyntaxErrorException: 列“2”不在 FROM 列表的任何表中,或者它出现在 join 规范内但超出 join 规范的作用域,或者它出现在 HAVING 子句中但不在 GROUP BY 列表中。如果这是 CREATE 或 ALTER TABLE 语句,则“2”不是目标表中的列。

   可能原因:表中并没有数据,但是尝试更新,那肯定是报错的

 2、错误:约束条件“FK_WWW”无效:表“"APP"."TEST"”上没有与外键中列的数量和类型相匹配的唯一键或主键约束条件。

   可能原因:两表的对应字段数据类型不一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值