在執行下面 sql 語句時發現報錯
createtable
`jc_site_access_pages` (
`access_date` date
notnull
default
'0000-00-00
' comment '
訪問日期',
`access_time` time
notnull comment '
訪問時間',
) engine
=innodb auto_increment=
25default charset=utf8 comment=
'訪問詳細頁面表
';
報的錯誤是時間的預設值有錯誤,查閱後發現 mysql 5.7 版本開始有了乙個 strict mode(嚴格模式),此模式中對預設值做了一些限制。
解決方法就是修改 sql_mode
--檢視當前
select
@@sql_mode;--
去掉 no_zero_in_date 和 no_zero_date
set@@sql_mode
=(select
replace(@@sql_mode,'
no_zero_in_date,no_zero_date
',''
));
--檢視全域性
select
@@global
.sql_mode;
set@@global.sql_mode=(select
replace(@@global.sql_mode,'
no_zero_in_date,no_zero_date
',''));
設定完成後重新連線 mysql 即可
mysql建表date型別不能設定預設值
如題,mysql建表date型別的不能設定乙個預設值,比如我這樣 create table new table biryhday datetime null default 1996 01 23 會得到錯誤資訊 invalid default value for biryhday 原因 mysql ...
mysql 建表時,我們應該考慮的資料型別
本文是由 高效能mysql 摘錄而來 如何選擇最優的資料型別,請看下面幾個原則 1 更小通常更好 好處 占用更少磁碟 記憶體和cpu快取,處理時需要的cpu週期更少 2 簡單就好 簡單資料型別通常需要更少的cpu週期,例子 用mysql內建日期型別 date,datetime,timestample...
mysql 建表時各列中資料型別的使用
create table userinfo id int unsigned not null primary key auto increment comment 主鍵 name varchar 20 default null comment 姓名 mobile char 11 default nu...