STRICT_TRANS_TABLES(存儲引擎啓用嚴格模式,非法數據值被拒絕)。

 


MySQL 1364 錯誤提示:#1364 - Field "details" doesn't have a default value。大概意思是:details字段沒有默認的數值;也就是說咱們沒有爲其分配數值,而表中此字段也沒有設置默認值。這是MySQL5出來後搞出來的東東,認真看一下my.ini文件中有這樣一段: my.ini中相關代碼   
sql


# 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(存儲引擎啓用嚴格模式,非法數據值被拒絕)。這也就是爲何咱們插入數據時返回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";數據

相關文章
相關標籤/搜索