关于SQL问题

来源:4-1 数据库设计与编码

kevin5

2016-05-26 18:49

老师请问当我去掉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'


写回答 关注

3回答

  • 极致修炼
    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必须设定默认值

    kevin5

    我的是5.7.12最新

    2016-05-29 12:28:04

    共 1 条回复 >

Java高并发秒杀API之业务分析与DAO层

Java实现高并发秒杀API的第一门课,还等什么,赶快来加入吧

87424 学习 · 496 问题

查看课程

相似问题