[精讚] [會員登入]
12655

[MYSQL] 設定字串欄位的預設值

新增表格的時候,字串欄位給予預設空值;數字欄位給預設數值;日期欄位給空值。

分享此文連結 //n.sfs.tw/10265

分享連結 [MYSQL] 設定字串欄位的預設值@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-25 11:32:05 最後編修
2016-11-21 13:01:02 By 張○○
 

自動目錄

可能是這近更新Mysql的關係,發現原本預設是not null的字串欄位,開始不能不給值寫入了。雖然not null寫入一定要有值這很合理,但是要改的程式很多,所以我反而想尋找比較懶的解決方法。

解決方法只要在新增表格的時候,字串欄位給予預設空值;數字欄位給預設數值;日期欄位給空值:

CREATE TABLE IF NOT EXISTS `table1` (
  `sn` int(11) NOT NULL auto_increment,
  `title` varchar(100) collate utf8_bin NOT NULL default '',
  `display` tinyint(4) NOT NULL default '1',
  `uDT` timestamp NOT NULL default '0000-00-00 00:00:00'
);

如果是現有表格,使用SQL修改語法:

字串欄位
ALTER TABLE `table1` CHANGE `col1` `col1` VARCHAR(6) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';

數字欄位
ALTER TABLE `hwList` CHANGE `num1` `num1` MEDIUMINT( 9 ) NOT NULL DEFAULT '0';
 
日期欄位
ALTER
TABLE `hwList` CHANGE `DT1` `DT1` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00';
 
此操作字串欄位不能用mysqladmin 2版來幫忙,因為那個預設值的欄位無法填入空字串,不過3版以後可以:

改完以後,就能夠新增資料,但不必給not null欄位值。這和設定成null但不給值的差異在於,如果設定成null但不給值新增的話,該欄位會變成NULL,未來作select就要很小心:

select * from table1 where col1='' 會取不到 col1=NULL的資料。
select * from table1 where isnull(col1) 會取不到 col1=''的資料。

最後說phpMyadm已經出到4版了,是該升級了。

參考資料

[1] http://stackoverflow.com/questions/3357953/default-a-column-with-empty-string

END

你可能感興趣的文章

[Mysql] 建立叢集式資料庫1/4 -- 安裝及設定DB1 使用galera建立Mysql的叢集式資料庫 (GALERA CLUSTER FOR MYSQL THE TRUE MULTI-MASTER)

Mysql INSERT ... ON DUPLICATE KEY UPDATE 寫法,MYSQL如果存在的修改,不存在就新增的寫法 Mysql有則修改,無則新增的sql寫法

[MySQL] console mode 的亂碼處理 使用MySQL的console mode如果出現亂碼 在,要怎麼處理?

[Mysql] 使用索引來加速搜尋 只要是常常用到搜索條件的欄位,就應該把它設成索引鍵,有無設定的速度差可能會好幾倍

[MySQL/Mariadb] 正規表達式(regular express) mysql的正規表達式很詭異,很不能接受

[mysqldump] Mysqldump時出現記憶體錯誤Out of memory 當進行 mysqldump 時出現 Out of memory (Needed xxxxx bytes) 的錯誤,該如何處理?

隨機好文

如何在linux下執行java 原生的java應用程式可以使用簡單的方法在console下面寫出來,適合作簡單的應用

海棉寶寶超泡杯演奏的sweet victory 章魚哥和海棉寶寶在超泡杯的演奏歌曲

維修海棉拖把頭 這類型的海棉拖把很好用,可是這近發現海棉頭越來越不耐用,也許是錯覺,以往都能用個三四個月,現在二個月就差不多掉下來。 這

此一時彼一時 我是不是易怒的人,其實我也不知道,總之我常會失控,不知道自己在幹嘛。這近生活過得浮浮的,不是很踏實,總會想太多,我甚至會

在Centos7 下安裝 Wildfly10 wildfly以前叫JBoss,2014.11.20改名叫Wildfly,起始版本是Wildfly8,現在已經出到Wil