问答详情
源自:4-1 数据库设计与编码

关于SQL问题

老师请问当我去掉start_time 和end_time的not null改为null 才能插入,而你的却可以是什么个情况?

mysql> CREATE TABLE seckill(

    ->  seckill_id bigint NOT NULL AUTO_INCREMENT COMMENT

    ->  name VARCHAR(120) NOT NULL COMMENT '商品名称',

    ->  number int NOT NULL COMMENT '库存数量',

    ->  start_time TIMESTAMP NOT NULL COMMENT '开始时间',

    ->  end_time TIMESTAMP  NOT NULL COMMENT '结束时间',

    ->  create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIM

间',

    ->  PRIMARY KEY(seckill_id),

    ->  key idx_start_time(start_time),

    ->  key idx_end_time(end_time),

    ->  key idx_create_time(create_time)

    -> )ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=

表';

ERROR 1067 (42000): Invalid default value for 'end_time'


提问者:kevin5 2016-05-26 18:49

个回答

  • 极致修炼
    2016-06-11 23:16:30

    我的mysql版本是5.7.11,把end_time修改为null ,start_time还是not null,执行没有问题

  • 萤火虫饲养员
    2016-05-28 19:52:22

    我也出现了,应该是版本问题~

  • 星际怪物
    2016-05-28 13:47:29

    老师的mysql版本比较新,5.6.26,你的可能比较早,timestamp NOT NULL必须设定默认值