【发布时间】:2015-08-01 06:12:13
【问题描述】:
我有一张表,比如example1,我正在使用 jdbc 语句删除其中的一行。我尝试了各种方法,从delete from example1 where id = 1 到statement.addbatch(sql),但它不会删除该行。如果我在 Toad for Mysql 中执行相同的 sql 语句,它能够很好地删除该行。
奇怪的是,使用 jdbc 我能够从其他表中删除行就好了;只是这张特殊的表格给了我意想不到的结果。
这张桌子没有什么特别之处。它有一个主键,没有约束/外键关系。
此外,此删除是事务的一部分,因此自动提交设置为false,一旦所有记录都更新/插入/删除,则提交完成。这似乎与任何其他表没有任何问题,并且所有更新/删除/插入都完成得很好。
在权限方面,该表对 db 用户的权限与 db 中的任何其他表相同。
任何想法或指示将不胜感激!
【问题讨论】:
-
您确认语句是从 java 触发的吗?
-
您标记了此故障转移,但未在帖子中提及 - 为什么?你确定在你删除它的同时没有其他东西插入它吗?
-
我不得不标记它故障转移,因为没有“失败”或“失败”标记,而且我没有创建新标记的权限。
-
你能把表格结构和你用来执行查询的代码贴出来吗?
-
“从java中触发”是什么意思?你能解释一下吗?我有调试语句 + 我也在 eclipse 中调试,看到语句正在执行..system.out.println 还打印查询和长度为零的结果 int[]。没有其他东西可以在此表中插入任何内容。此表中的条目确实是通过存储过程插入的,当 gui 上的用户从表中删除某些内容时调用该存储过程..所以基本上,不同表中的任何删除都将导致该表中的条目包含该已删除记录的信息关于那张唱片。
标签: java mysql jdbc sql-delete failover