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,然后设置格式