簡體   English   中英

如何更改mysql表列的默認值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM