我有一个闭源升级应用程序,它将我的数据库从旧格式迁移到新格式(创建新表并将数据从旧表迁移到新表)。
应用程序崩溃并出现 MySQLIntegrityConstraintViolationException。它没有给我主键违规的表的名称或损坏的 SQL 查询的内容。
是否有任何 MySQL 服务器选项可供我切换以提供更多故障排除信息?也许是失败查询的文本或违反了主键约束的名称?
最佳答案
您可以启用通用日志文件:http://dev.mysql.com/doc/refman/5.1/en/query-log.html .这样就有可能看到服务器在什么时候停止处理查询。
您还可以运行 MySQL 命令 show processlist
来查看当时正在处理的查询。
还可以查看所有其他特定于应用程序的错误日志。
第一个尝试可能是在迁移期间禁用外键检查:
SET foreign_key_checks = 0;
第一个猜测是,旧服务器支持 0 作为主键值,而新服务器不支持。
关于mysql - MySQLIntegrityConstraintViolationException 故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3105655/