1. 程式人生 > >mysql插入非空欄位的問題

mysql插入非空欄位的問題

線上 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的區別