mysql版本5.5.4
Create Table |
CREATE TABLE `menu` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL COMMENT '菜單名稱', `parent_id` int(10) NOT NULL COMMENT '菜單父類id', `controller` varchar(100) NOT NULL COMMENT '控制器', `action` varchar(100) NOT NULL COMMENT '方法', `add_time` int(10) NOT NULL, `update_time` int(10) NOT NULL, `icon` varchar(30) NOT NULL COMMENT 'bootstrap的圖標,一級菜單添加', `mark` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8 COMMENT='菜單表' |
window環境下update_time爲 not null,沒有默認值
執行sql
INSERT INTO `menu` (`id`,`name`,`controller`,`action`,`icon`,`parent_id`,`add_time`) VALUES ('0','鑿滃崟鍚嶇О','鎺у埗鍣�','鏂規硶鍚�','1212','0','1446017793')
有警告
Warning Code : 1364
Field 'update_time' doesn't have a default value
但是還是可以插入成功
linux環境下,mysql版本5.5.44
CREATE TABLE `bannel` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`url` text NOT NULL COMMENT 'bannel路徑',
`add_time` int(10) unsigned NOT NULL,
`update_time` int(10) unsigned NOT NULL,
`type` int(1) unsigned NOT NULL DEFAULT '1' COMMENT '1:專題的bannel',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
update_time 設置爲not null ,沒有默認值
插入
insert into `bannel` (`id`, `url`, `add_time`, `type`) values (0, '111', '123', '1')
錯誤代碼: 1364
Field 'update_time' doesn't have a default value
報錯,沒有插入成功
分析原因:
參考文檔:http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html
建議
1:字段設置爲not null 可以給一個默認值,int類型的可以爲0,字符串類型的可以設置爲空字符串“”,或者時間格式的可以設置爲timestamp,然後設置格式