為什么用如下代碼,每一列的默認值都是NULL
mysql>?CREATE?TABLE?users( ????->?id?MEDIUMINT?UNSIGNED?NOT?NULL?AUTO_INCREMENT, ????->?name?VARCHAR(20)?NOT?NULL, ????->?banji?VARCHAR(20)?NOT?NULL, ????->?xuehao?VARCHAR(12)?NOT?NULL, ????->?phone?VARCHAR(20)?NOT?NULL, ????->?email?VARCHAR(50)?NOT?NULL, ????->?PRIMARY?KEY(id) ????->?); Query?OK,?0?rows?affected?(1.21?sec)
使用
SHOW?COLUMNS?FROM?users;
顯示后,每一列的默認值都是NULL,我看書上的除了主鍵默認值是NULL,其他都是空著的啊。為什么我的和書上不一樣?
2016-07-05
因為你指定了每個字段為非空,但是沒有指定每行的默認值,你把NOT NULL關鍵字取消掉就好了
2016-07-26
那是默認的吧,not null只是表示你插入數據時該字段不能為空,你數據都沒插入何來null不null一說,null表示沒有數據,你不插入還能給你來個空字符串?如果創建表后某列的值是空,那這空是哪里來的?系統給你自動加數據?