單表多timestamp報錯#1293 -?Incorrect table definition; there can be only one TIMESTAMP column with C解決 ? 一個表中出現多個timestamp并設置其中一個為current_timestamp的時候經常會遇到 #1293 - Incorrect table definition; there can be only oneTIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATEclause ? www.2cto.com ? 原因是當你給一個timestamp設置為on updatecurrent_timestamp的時候,其他的timestamp字段需要顯式設定default值 ? 但是如果你有兩個timestamp字段,但是只把第一個設定為current_timestamp而第二個沒有設定默認值,mysql也能成功建表,但是反過來就不行... ??
2016-05-09
--數據庫初始化腳本
--創建數據庫
CREATE DATABASE seckill
use 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='秒殺庫存表'
--初始化數據
insert into
? ?seckill (name , number , start_time , end_time)
VALUES
? ?('100元秒殺ipad' , 100 , '2015-11-01 00:00:00' , '2015-11-02 00:00:00'),
? ?('200元秒殺小米5' , 100 , '2015-11-01 00:00:00' , '2015-11-02 00:00:00'),
? ?('300元秒殺iphone6s' , 100 , '2015-11-01 00:00:00' , '2015-11-02 00:00:00');
--秒殺成功明細
--用戶登錄認證信息
create table success_seckilled(
seckill_id bigint NOT NULL ?COMMENT '商品庫存id',
phone varchar(11) NOT NULL COMMENT '用戶電話',
state tinyint NOT NULL DEFAULT ?0 COMMENT '狀態標識:-1:無效 0:成功 1:已付款 2:已發貨',
create_time TIMESTAMP ?NOT NULL COMMENT '創建時間',
PRIMARY KEY (seckill_id , phone) , /*聯合主鍵*/
key idx_create_time(create_time)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='秒殺成功明細'
2017-04-24
CREATE TABLE seckill(
seckill_id bigint NOT NULL AUTO_INCREMENT COMMENT '商品庫存id',
`name` varchar(120) NOT NULL COMMENT '商品名稱',
`number` int NOT NULL COMMENT '庫存數量',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
`start_time` timestamp NOT NULL COMMENT '秒殺開始時間',
`end_time` timestamp NOT NULL 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='秒殺庫存表';
單表多timestamp報錯#1293 -?Incorrect table definition; there can be only one TIMESTAMP column with C解決 ? 一個表中出現多個timestamp并設置其中一個為current_timestamp的時候經常會遇到 #1293 - Incorrect table definition; there can be only oneTIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATEclause ? www.2cto.com ? 原因是當你給一個timestamp設置為on updatecurrent_timestamp的時候,其他的timestamp字段需要顯式設定default值 ? 但是如果你有兩個timestamp字段,但是只把第一個設定為current_timestamp而第二個沒有設定默認值,mysql也能成功建表,但是反過來就不行... ??
? ?
2016-09-30
AUTO_INCREMENT=1000這里設置成1000是什么意思
2016-06-27
1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
mysql>?
2016-05-07
報什么錯,貼出來大家幫你找。