Как изменить значения по умолчанию столбца таблицы 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обратите внимание, что необходимо повторить имя столбца. Кроме того, убедитесь, что вы используете обратные кавычки вместо одинарных кавычек, чтобы избежать времени имени столбца, что предотвращает его интерпретацию как тип столбца mysql времени.
указав значение по умолчанию CURRENT_TIMESTAMP, MySQL больше не будет автоматически обновлять столбец. Из MySQL Manual:
с предложением CURRENT_TIMESTAMP по умолчанию и предложением no ON UPDATE столбец имеет текущую метку времени для своего значения по умолчанию, но не обновляется автоматически.
вы не можете AFAIK использовать такие функции, как NOW() по умолчанию.
попробовать
ALTER TABLE `mytable` CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(отредактировано для добавления экранирования и второго использования имени Поля)
Comments