Подтвердить что ты не робот

Как изменить значения столбца таблицы mysql по умолчанию?

У меня есть таблица с столбцом типа timestamp, который по умолчанию current_timestamp и обновляется до current_timestamp при каждом обновлении.

Я хочу удалить функцию "on update" в этом столбце. Как написать инструкцию alter?

Я попробовал следующее:

ALTER TABLE mytable alter column time  set DEFAULT now();

но это не сработало.

4b9b3361

Ответ 1

Пит был почти прав, но использовал неправильный синтаксис для "change":

ALTER TABLE mytable CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

Обратите внимание, что вы должны повторить имя столбца. Кроме того, убедитесь, что вы используете backticks вместо одиночных кавычек, чтобы избежать времени имени столбца, что мешает ему интерпретироваться как тип времени столбца mysql.

Указав DEFAULT CURRENT_TIMESTAMP, MySQL больше не будет автоматически обновлять столбец. Из Руководство по MySQL:

С предложением DEFAULT CURRENT_TIMESTAMP и предложением ON UPDATE столбец имеет текущую временную метку для значения по умолчанию, но не обновляется автоматически.

Ответ 2

Вы не можете использовать AFAIK функции, такие как NOW(), по умолчанию.

Try

ALTER TABLE `mytable` CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

(Отредактировано для добавления экранирования и второго использования имени поля)