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

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

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

я попробовал следующий:

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

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

2 ответов


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

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

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

указать значение по умолчанию ТЕКУЩАЯ_ОТМЕТКА_ВРЕМЕНИ, MySQL будет больше не будет автоматически обновлять колонку. От Руководство MySQL:

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


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

попробовать

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

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