mysql 5.5.4版本关于not null设置的区别
2015-10-28 16:33
706 查看
mysql版本5.5.4
建表语句,
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,然后设置格式
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,然后设置格式
相关文章推荐
- mysql innobackupex备份实施
- mysql 日期时间运算函数
- mysql_config_editor 加密用户的密码
- 【mysql】一条慢查询sql的的分析
- 解决MySQL 5.6版的Function 'innodb' already exists错误
- mysql主从搭建脚本
- MySQL在Ubuntu系统的三种自启动方法
- MySQL 5.6 & 5.7最优配置文件模板
- 向mysql数据库中写入中文,报错问题解决
- MySQL下concat函数中null值问题
- MySQL的MyISAM与INNODB对比
- MySQL安装设置详细教程
- mysql 的定时sql任务
- mysql查看session连接数和session状态
- MySQl时间函数
- mysql解压版使用方法-----安装
- Mysql安装
- mysql一些函数常见的用法(left join、join、right join....)(2)
- MySQL备份数据库
- Amoeba实现Mysql读写分离