Я проверяю / реорганизую / реорганизую базу данных и хочу создать новую базу данных, которая будет хранить практически те же данные более разумным способом. Одна из проблем в «устаревшей» базе данных заключается в том, что она не использует должным образом ключи и индексы, поэтому есть дублирующиеся записи там, где их не должно быть.
Я написал скрипт на python, который считывает данные из устаревшей базы данных и генерирует скрипт SQL, который, в свою очередь, вставляет эти значения из устаревшей базы данных в новую базу данных, используя множество очень похожих операторов SQL INSERT. Сценарий SQL останавливается каждый раз, когда встречается повторяющаяся запись с сообщением об ошибке
ОШИБКА 1062 (23000) в строке 3086: повторяющаяся запись '56 .450000000--3.366670000-121 'для ключа' lat_lon_height '
какой именно AFAICT это именно то, что он должен делать. Однако на данный момент я просто хочу, чтобы скрипт продолжал работать, не вставляя дублирующиеся записи, а печатая предупреждение о них. Я попытался установить обработчик продолжения в начале сценария несколькими способами, следуя документам MySQL и некоторым другим онлайн-ресурсам , но все они просто создают синтаксическую ошибку:
DECLARE CONTINUE HANDLER FOR 1062
SELECT 'Duplicate key in unique index';
или
DECLARE CONTINUE HANDLER FOR SQLSTATE '23000'
SELECT 'Duplicate key in unique index';
или
DECLARE CONTINUE HANDLER FOR SQLSTATE '23000'
BEGIN
SELECT 'Duplicate key in unique index';
END;
Что я делаю не так?