和老師的sql一樣,怎么會(huì)報(bào)錯(cuò)1067?
DROP?TABLE?IF?EXISTS?`seckill`; create?table?seckill( `seckill_id`?bigint?not?null?auto_increment?comment?'商品庫(kù)存ID', `name`?varchar(120)?not?null?comment?'商品名稱', `number`?int?not?null?comment?'庫(kù)存數(shù)量', `start_time`?timestamp?not?null?comment?'秒殺開始時(shí)間', `end_time`?timestamp?not?null?comment?'秒殺結(jié)束時(shí)間', `create_time`?timestamp?not?null?default?current_timestamp?comment?'創(chuàng)建時(shí)間', 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=utf8?comment='秒殺庫(kù)存表';
1067 - Invalid default value for 'end_time'
2016-10-02
我?guī)湍闶橇艘幌驴梢缘?,?yīng)該改是其他的問題,不是代碼的錯(cuò)
你那第一行寫的是什么?
2016-09-08
應(yīng)該是版本的事
2016-07-13
這是我找的資料不知道對(duì)不對(duì),不明白為什么老師就可以執(zhí)行|?
下文來自:http://lavasoft.blog.51cto.com/62575/280284
MYSql5的日期類型有三種:date(只有日期)、datetime(時(shí)分秒)和timestamp(時(shí)分秒)。
一、TIMESTAMP
1、TIMESTAMP列必須有默認(rèn)值,默認(rèn)值可以為'0000-00-00 00:00:00',但不能為null
2、TIMESTAMP列不可以設(shè)置值,只能由數(shù)據(jù)庫(kù)自動(dòng)去修改
3、一個(gè)表可以存在多個(gè)TIMESTAMP列,但只有一個(gè)列會(huì)根據(jù)數(shù)據(jù)更新而改變數(shù)據(jù)庫(kù)系統(tǒng)當(dāng)前值(默認(rèn)是第一個(gè)TIMESTAMP列),因此,一個(gè)表中有多個(gè)TIMESTAMP列,是沒有一意義的,實(shí)際上一個(gè)表只設(shè)定一個(gè)TIMESTAMP列。
4、TIMESTAMP列的默認(rèn)值是CURRENT_TIMESTAMP常量值,當(dāng)記錄數(shù)據(jù)發(fā)生變化的時(shí)候,TIMESTAMP列會(huì)自動(dòng)將其值設(shè)定為CURRENT_TIMESTAMP。
5、TIMESTAMP列創(chuàng)建后的格式是:
`a`?timestamp?NOT?NULL?DEFAULT?CURRENT_TIMESTAMP?ON?UPDATE?CURRENT_TIMESTAMP,
語句含義是,a字段的默認(rèn)值是CURRENT_TIMESTAMP,當(dāng)紀(jì)錄更新時(shí)候,自動(dòng)將a字段的值設(shè)置為CURRENT_TIMESTAMP。
6、另外,下面的定義從語法角度是對(duì)的,但是沒有意義,因?yàn)樵撟侄蔚闹挡豢筛?,永遠(yuǎn)只能為默認(rèn)值。
`b`?timestamp?NOT?NULL?DEFAULT?'0000-00-00 00:00:00'。