Устранение неполадок MySQLIntegrityConstraintViolationException - PullRequest
1 голос
/ 24 июня 2010

У меня есть приложение обновления с закрытым исходным кодом, которое переносит мою базу данных из старого формата в новый (создает новые таблицы и переносит данные из старых в новые таблицы).

Приложение аварийно завершает работу с MySQLIntegrityConstraintViolationException. Он не дает мне имя таблицы с нарушением первичного ключа или содержимое неработающего SQL-запроса.

Есть ли какая-либо опция сервера MySQL, которую я могу переключить, чтобы дать мне больше информации по устранению неполадок? Может быть текст неудавшегося запроса или имя ограничения первичного ключа, которое нарушено?

1 Ответ

0 голосов
/ 17 апреля 2012

Вы можете включить общий файл журнала: http://dev.mysql.com/doc/refman/5.1/en/query-log.html.Таким образом, можно увидеть, в какой момент сервер перестает обрабатывать запросы.

Вы также можете выполнить команду MySQL show processlist, чтобы увидеть, какие запросы обрабатываются в это время.

Также просмотрите все другие журналы ошибок, специфичные для приложения.

Первая попытка может состоять в том, чтобы отключить проверку внешнего ключа во время миграции: SET foreign_key_checks = 0;

Первое предположение: старыйсервер поддерживает 0 в качестве значений первичного ключа, а новый - нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...