亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

和老師的sql一樣,怎么會報錯1067?

DROP?TABLE?IF?EXISTS?`seckill`;
create?table?seckill(
`seckill_id`?bigint?not?null?auto_increment?comment?'商品庫存ID',
`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_timestamp?comment?'創建時間',
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='秒殺庫存表';

1067 - Invalid default value for 'end_time'

正在回答

3 回答

我幫你是了一下可以的,應該改是其他的問題,不是代碼的錯

你那第一行寫的是什么?

0 回復 有任何疑惑可以回復我~

應該是版本的事

0 回復 有任何疑惑可以回復我~

這是我找的資料不知道對不對,不明白為什么老師就可以執行|?

下文來自:http://lavasoft.blog.51cto.com/62575/280284

MYSql5的日期類型有三種:date(只有日期)、datetime(時分秒)和timestamp(時分秒)。

一、TIMESTAMP

1、TIMESTAMP列必須有默認值,默認值可以為'0000-00-00 00:00:00',但不能為null

2、TIMESTAMP列不可以設置值,只能由數據庫自動去修改

3、一個表可以存在多個TIMESTAMP列,但只有一個列會根據數據更新而改變數據庫系統當前值(默認是第一個TIMESTAMP列),因此,一個表中有多個TIMESTAMP列,是沒有一意義的,實際上一個表只設定一個TIMESTAMP列。

4、TIMESTAMP列的默認值是CURRENT_TIMESTAMP常量值,當記錄數據發生變化的時候,TIMESTAMP列會自動將其值設定為CURRENT_TIMESTAMP。

5、TIMESTAMP列創建后的格式是:

`a`?timestamp?NOT?NULL?DEFAULT?CURRENT_TIMESTAMP?ON?UPDATE?CURRENT_TIMESTAMP,

語句含義是,a字段的默認值是CURRENT_TIMESTAMP,當紀錄更新時候,自動將a字段的值設置為CURRENT_TIMESTAMP。

6、另外,下面的定義從語法角度是對的,但是沒有意義,因為該字段的值不可更改,永遠只能為默認值。

`b`?timestamp?NOT?NULL?DEFAULT?'0000-00-00 00:00:00'。


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

和老師的sql一樣,怎么會報錯1067?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號