MySQL 建表時 date 型別的預設值設定

2022-06-18 20:18:10 字數 981 閱讀 9197

在執行下面 sql 語句時發現報錯

create

table

`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...