[英]How do I alter a mysql table column defaults?
我有一個表格,其中包含timestamp
類型的列,默認為current_timestamp
並在每次更新時更新為current_timestamp
。
我想刪除此列上的“on update”功能。 如何編寫alter語句?
我嘗試了以下方法:
ALTER TABLE mytable alter column time set DEFAULT now();
但這沒用。
Pete幾乎是正確的但是使用了錯誤的語法來“改變”:
ALTER TABLE mytable CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
請注意,您必須重復列名稱。 此外,請確保使用反引號而不是單引號來轉義列名稱時間,這可以防止它被解釋為mysql列類型的時間。
通過指定CURRENT_TIMESTAMP的DEFAULT,MySQL將不再自動更新列。 從MySQL手冊 :
使用DEFAULT CURRENT_TIMESTAMP子句且沒有ON UPDATE子句時,該列具有其默認值的當前時間戳,但不會自動更新。
AFAIK不能使用NOW()等函數作為默認值。
嘗試
ALTER TABLE `mytable` CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
(編輯添加轉義和第二次使用字段名稱)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.