mysql已经指定主键了,为什么用phpMyAdmin插入的时候,主键设置为空也不报错啊? 还有,数据字段的Null,明明指定为Not Null了,插入空数据也不报错,为什么啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的建表语句是什么?如果是 auto_increment 的字段为主键,MYSQL会分配一个数字给这个字段的,当你输入为null的时候。如果不是,请给出你的建表语句,和insert 语句。 show create table tb_name;和insert语句 CREATE TABLE `user` (\n `id` char(8) NOT NULL, `lang` bigint(20) unsigned NOT NULL,\n `status` char(1) NOT NULL default '0',\n PRIMARY KEY (`id`,`lang`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8这个是show create table tb_name; 得到的结果,都指定非空了。INSERT INTO `mydb`.`user` (`id`, `lang`, `status`) VALUES ('', '', '0');用phpMyAdmin插入的,因为什么都没填,SQl语句变成上面那样,结果还是能插入。也不报错。 你需要了解一下NULL, '', ' ' 都是些什么。 NULL 空'' 空字符串' ' 空格字符串你插入的是 '' 不是null, 当然会被允许! 求个sql,在mysql下运行 mysql中不能输入汉字 如何将MYSQL字段设置成默认当前时间戳? MySQL求教 'Table 'aaa.user_tmp也属于 复制表? 拼接sql语句的问题,求高手 触发器如何编写? ado连接mysql,怎么判断某个数据库是否存在 为什么说error 1193 unkonwn system variable 在线求助一个简单的sql语句!! 数据类型求解 MY SQL这个问题怎么解决
如果不是,请给出你的建表语句,和insert 语句。
和
insert语句
这个是show create table tb_name; 得到的结果,都指定非空了。
INSERT INTO `mydb`.`user` (`id`, `lang`, `status`) VALUES ('', '', '0');用phpMyAdmin插入的,因为什么都没填,SQl语句变成上面那样,结果还是能插入。也不报错。
'' 空字符串
' ' 空格字符串你插入的是 '' 不是null, 当然会被允许!