比如我建立一个表students
name varchar(50) not null
gender varchar(2) not null
point int not null
当我键入mysql指令
insert into students (name) values('zhang');
在家里的电脑上能够成功,但是在单位的会报错提示gender行没有默认值
我想问一下这是什么原因,是mysql版本的原因还是表类型的原因?

解决方案 »

  1.   

    你的数据库是不是不一样? 一个数据表 gender栏位设置了 自动递增 autoincrease 一个没有??
      

  2.   

    select @@sql_mode;
    set sql_mode='traditional';
    重新创建表
      

  3.   

    mysql> create table test(
        -> field1 varchar(30) not null,
        -> field2 varchar(30) not null);
    Query OK, 0 rows affected (0.06 sec)mysql> select @@sql_mode;
    +------------+
    | @@sql_mode |
    +------------+
    |            |
    +------------+
    1 row in set (0.00 sec)mysql> insert into test(field1) values('1111');
    Query OK, 1 row affected, 1 warning (0.03 sec)mysql> set sql_mode='traditional';
    Query OK, 0 rows affected (0.01 sec)mysql> insert into test(field1) values('1111');
    ERROR 1364 (HY000): Field 'field2' doesn't have a default valuemysql> select version();
    +---------------------+
    | version()           |
    +---------------------+
    | 5.0.45-community-nt |
    +---------------------+
    1 row in set (0.00 sec)
      

  4.   

    http://www.ug8888.com/html/23/t-60523.html
      

  5.   

    http://hi.baidu.com/hukaisheng511/blog/item/b0b1bea36156cc8246106460.html