標籤:strong io 檔案 資料 代碼 資料庫 sql 設計
MySQL 1364 錯誤提示:#1364 - Field "details" doesn‘t have a default value。大概意思是:details欄位沒有預設的數值;也就是說我們沒有為其分配數值,而表中此欄位也沒有設定預設值。這是MySQL5出來後搞出來的東東,認真看一下my.ini檔案中有這樣一段: my.ini中相關代碼
# Set the SQL mode to strict # sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
- sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
假如您無法看到my.ini,你可以執行以下SQL命令。 SQL代碼
- SELECT @@GLOBAL.sql_mode;
您可能一下子就注意到:STRICT_TRANS_TABLES(儲存引擎啟用strict 模式,非法資料值被拒絕)。這也就是為什麼我們插入資料時返回1364的原因:details欄位沒有設定預設值。 解決辦法有兩種: 第一種:資料庫設計時,為可能沒有資料的欄位設定預設值。 第二種:設定SQL的模式,此有兩種方法: (1),配置my.ini,去掉:STRICT_TRANS_TABLES my.ini配置代碼
# Set the SQL mode to strict # sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
- sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
(2),運行SQL命令。註:此命令需要許可權! SQL代碼
- SET @@GLOBAL.sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";