还有,数据字段的Null,明明指定为Not Null了,插入空数据也不报错,为什么啊?

解决方案 »

  1.   

    你的建表语句是什么?如果是 auto_increment 的字段为主键,MYSQL会分配一个数字给这个字段的,当你输入为null的时候。
    如果不是,请给出你的建表语句,和insert 语句。
      

  2.   

    show create table tb_name;

    insert语句
      

  3.   

    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语句变成上面那样,结果还是能插入。也不报错。
      

  4.   

    你需要了解一下NULL, '', '  ' 都是些什么。 NULL 空
    ''  空字符串
    ' ' 空格字符串你插入的是 '' 不是null, 当然会被允许!