我有一个表,例如 example1
,我正在使用 jdbc 语句删除其中的一行。我尝试了各种方法,从 delete from example1 where id = 1
到 statement.addbatch(sql)
但它不会删除该行。如果我在 Toad for Mysql 中执行相同的 sql 语句,它能够很好地删除该行。
奇怪的是,使用 jdbc 我可以很好地从其他表中删除行;只是这个特定的表给了我意想不到的结果。
这张 table 没什么特别的。它有一个主键,没有约束/外键关系。
此外,此删除是事务的一部分,因此自动提交设置为 false
,一旦所有记录都被更新/插入/删除,提交就完成了。这似乎对任何其他表都没有任何问题,并且所有更新/删除/插入都完成得很好。
在权限方面,此表对数据库用户具有与数据库中任何其他表相同的权限。
任何想法或指示将不胜感激!
最佳答案
打开数据库的常规日志记录或在 JDBC 驱动程序中进行分析会向您显示实际进入数据库的内容:
http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html
通过将此添加到您的连接字符串来启用对 Connector/J 查询的分析:profileSQL=true
一般记录文档: http://dev.mysql.com/doc/refman/5.1/en/query-log.html
还有 mk-query-digest 用于嗅探您的网络流量并分析结果: http://www.maatkit.org/doc/mk-query-digest.html
关于java - JDBC 语句无法删除特定 MySql 表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6195682/