mysql插入非空欄位的問題
阿新 • • 發佈:2019-01-04
線上 mysql 5.6 插入記錄 如果有非空欄位沒有值 而且沒有設定預設值 ,插入失敗
線下 mysql 5.5 插入記錄 如果有非空欄位沒有值 而且沒有設定預設值 ,插入成功
線上 :
select @@global.sql_mode\G
global.sql_mode : STRICI_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
線下:
select @@global.sql_mode\G
global.sql_mode : NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
最後得出結論
1. 如果sql_mode 沒有設定STRICI_TRANS_TABLES,則在插入記錄時,如果有非空欄位沒有值 而且沒有設定預設值,則引擎會
自動填充(int型別 填充0 string型別 填充 '' timestamp 型別填充 當前時間戳(2018-06-22 19:54:52)
2. 標準推薦設定 global.sql_mode : STRICI_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
在mysql配置檔案my.cnf 或my.ini 中新增 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
mysql的sql_mode
===========================================
mysql 中的空字串'' 與 NULL的區別