上面说它的表 name和sex列是NOT NULL的,而且都没有默认值。
但是用INSERT插入语句时,如果省略他们,也可以正常插入
如:INSERT INTO table(name) values('ll');   INSERT INTO table(sex) values('male');按理说,为not null 又没有设置默认值,插入时候应该会报错,不能执行那个语句啊,反正我的是不行,不知道各位能否帮我解释一下?帖子地址为:http://bbs.csdn.net/topics/390108116
由于这个帖子已经不能回复了,所以我开新帖了

解决方案 »

  1.   

    还有关于那个帖子的最后一个回答,我不太理解他说的“自动设置默认值”,如果是not null 的,那必须得设置值啊,为什么会有“如果是NOT NULL字段,MySQL对于数值类型插入0,字符串类型插入空字符串,时间戳类型插入当前日期和时间,ENUM类型插入枚举组的第一条。”这种说法,我不太明白。
      

  2.   

    你操作用的是什么模式?
    命令行还是UI, 如果用的UI, 用的哪个?我用UI方式测试了, 工具为sqlyog 和 mysql workbench 都不能正确执行, 需要指定字段和插入值.“NOT NULL字段,MySQL对于数值类型插入0,字符串类型插入空字符串,时间戳类型插入当前日期和时间,ENUM类型插入枚举组的第一条。”
    这个结论, 至少在我用sqlyog 和 mysql workbench 执行插入时, 是不成立的.
      

  3.   


    我用的可视化的navicat(你的UI应该指的是可视化的界面意思吧?)是不行的。没有用过命令行的。
    第二个 结论我也是觉得他说的有疑问,也不太确定。感觉是不行的。
      

  4.   


    恩,就是这个意思。我用工具来测试是不行的,跟你说的一样linux  下的命令行方式, 没试验过