簡體   English   中英

MySQL Alter表添加列,默認值為1

[英]MySQL Alter table add column with default of 1

我已經閱讀了有關MySQL ALTER TABLE的大多數文章,但是找不到我的問題的答案。

我有一個向表中添加新列的腳本,它可以正常工作,但是我遇到的問題是它沒有為新列設置默認值。 我錯過了什么嗎?

ALTER TABLE Hist ADD S1 VARCHAR( 5 ) DEFAULT '1', ADD comments_S1 TEXT

上面是我正在使用的代碼。

有任何想法嗎

非常感謝您的寶貴時間。

,, default值僅用於新行。 舊行為NULL 因此,只需在alter table之后更新它們:

update hist
    set s1 = '1';

這在MySQL中並沒有得到很好的記錄 ,但建議使用。

僅修改表元數據而不修改表數據的更改是立即進行的,因為服務器僅需要更改表.frm文件,而無需更改表內容。 以下更改是可以通過這種方式進行的快速更改:

-更改列的默認值(NDB表除外)。

添加列確實需要表副本。 但是舊的值不受影響。

我相信將列添加到MySQL表的語法是:

ALTER TABLE table_name ADD COLUMN col type DEFAULT 'default';

您的語法中缺少關鍵字COLUMN 請嘗試以下操作:

ALTER TABLE Hist
ADD S1 VARCHAR(5) DEFAULT '1',
ADD comments_S1 TEXT;

似乎您的應用程序代碼中的某些內容將S1字段設置為空字符串。

ALTER TABLE Hist
ADD S1 VARCHAR(5) DEFAULT '1' NOT NULL,
ADD comments_S1 TEXT;

它將防止S1為空,並自動將NULL字段更改為'1'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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