【问题标题】:Troubleshooting MySQLIntegrityConstraintViolationExceptionMySQLIntegrityConstraintViolationException 故障排除
【发布时间】:2011-03-07 13:07:28
【问题描述】:

我有一个闭源升级应用程序,它将我的数据库从旧格式迁移到新格式(创建新表并将数据从旧表迁移到新表)。

应用程序崩溃并出现 MySQLIntegrityConstraintViolationException。它没有给我主键违规的表的名称或损坏的 SQL 查询的内容。

是否有任何 MySQL 服务器选项可供我切换以提供更多故障排除信息?也许是失败查询的文本或违反的主键约束的名称?

【问题讨论】:

  • 该错误通常是由于与主键或唯一键约束发生冲突。桌上有没有设置?
  • 数据库有大量的表,其中大多数确实有主/唯一约束。我的问题是确定违反了哪些约束。

标签: mysql exception


【解决方案1】:

您可以启用通用日志文件:http://dev.mysql.com/doc/refman/5.1/en/query-log.html。这样就可以看到服务器在什么时候停止处理查询。

您也可以运行 MySQL 命令show processlist 来查看当时正在处理哪些查询。

还可以查看所有其他特定于应用程序的错误日志。

首先尝试在迁移期间禁用外键检查: SET foreign_key_checks = 0;

第一个猜测是,旧服务器支持 0 作为主键值,而新服务器不支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-15
    • 2010-11-30
    • 2021-09-11
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多