Я обновляю столбец до UTF-8, потому что мне нужно вводить корейские символы.
Первоначально я выполнил приведенный ниже запрос без IGNORE, но он вызвал ошибку.
ALTER TABLE db_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ОШИБКА 1292 (22007): неверное значение даты: «0000-00-00» для столбца «PRDP» в строке 199593
Я искал и нашел это:
Документация MySQL 5.7 говорит :
Строгий режим влияет на то, разрешает ли сервер «0000-00-00» в качестве допустимой даты: если строгий режим не включен, «0000-00-00» разрешен, и вставки не выдают предупреждение. Если включен строгий режим, «0000-00-00» не разрешается, и вставки выдают ошибку, если только не указан IGNORE. Для INSERT IGNORE и UPDATE IGNORE «0000-00-00» разрешено, а вставки выдают предупреждение.
Когда я запустил его с помощью IGNORE, он дал мне следующее:
ALTER IGNORE TABLE db_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с 'IGNORE TABLE db_name MODIFY column_name VARCHAR (255) CHARACTER SET utf8mb4 COLLATE utf8mb4' в строке 1
Я проверил оператор на валидаторе синтаксиса sql (eversql), и он не уловил эту ошибку.
Пожалуйста, помогите!