這是我在Mysql數(shù)據(jù)庫中干旁,新建一張表時(shí)出現(xiàn)的問題,代碼如下
-- 創(chuàng)建表
CREATE TABLE seckill(
`seckill_id` bigint NOT NULL AUTO_INCREMENT COMMENT '商品庫存id',
`name` varchar(120) NOT NULL COMMENT '商品名稱',
`number` int NOT NULL COMMENT '庫存數(shù)量',
-- 此行不會(huì)報(bào)錯(cuò)炮沐,因?yàn)槟J(rèn)值使用CURRENT_TIMESTAMP
`start_time` TIMESTAMP NOT NULL COMMENT '秒殺開啟時(shí)間',
-- 此行會(huì)報(bào)錯(cuò),因?yàn)槟J(rèn)值使用“0000-00-00 00:00:00”大年,
-- Mysql 5.7版本后的SQL_MODE默認(rèn)為strict(NO_ZERO_DATE)换薄,
-- 所以第二個(gè)出現(xiàn)報(bào)錯(cuò)
-- 解決方案:SET SQL_MODE = 'ALLOW_INVALID_DATES';
`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='秒殺庫存表';
我的解決方案是:
SET SQL_MODE = 'ALLOW_INVALID_DATES';
如果有更好的解決方案翔试,請(qǐng)留言轻要。