Ошибка #1292 в MySQL "Incorrect datetime value: 'CURRENT_TIMESTAMP(6).000000' for column 'updated_at' at row 1" возникает при попытке вставить некорректное значение в столбец с типом данных DATETIME или TIMESTAMP.
При использовании функции CURRENT_TIMESTAMP() без аргументов, MySQL устанавливает текущую дату и время, однако, в данном случае, видимо была попытка установить миллисекунды для значения времени. Стандартный тип данных DATETIME в MySQL не поддерживает миллисекунды, только секунды.
Ошибка указывает, что значение "CURRENT_TIMESTAMP(6).000000" некорректно для столбца 'updated_at'. Это означает, что вам нужно либо изменить тип данных столбца 'updated_at' на TIMESTAMP(6) либо удалить '.000000' из значения, которое вы пытаетесь вставить.
Вариант с изменением типа данных столбца 'updated_at' на TIMESTAMP(6) может выглядеть следующим образом:
ALTER TABLE your_table_name
MODIFY COLUMN updated_at
TIMESTAMP(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6);
В данном примере мы настраиваем столбец 'updated_at' с типом данных TIMESTAMP(6), чтобы поддерживать миллисекунды. Дополнительно, мы устанавливаем значение по умолчанию для столбца на CURRENT_TIMESTAMP(6) и указываем, что оно должно быть обновлено при каждом обновлении записи.
Если вы не нуждаетесь в точности до миллисекунд, то вам следует удалить '.000000' из значения "CURRENT_TIMESTAMP(6).000000" перед вставкой или обновлением строки в таблице. В этом случае вам не нужно менять тип данных столбца 'updated_at'.
Например, если у вас есть запрос на обновление, вы можете изменить его таким образом:
UPDATE your_table_name
SET updated_at
= CURRENT_TIMESTAMP()
WHERE id
= 1;
В этом случае мы используем CURRENT_TIMESTAMP() без аргументов, чтобы установить текущую дату и время без миллисекунд.