mysql 1364 错误提示:#1364 - field details doesn't have a default value。大概意思是:details字段没有默认的数值;也就是说我们没有为其分配数值,而表中此字段也没有设置默认值。这是mysql5出来后搞出来的东东,认真看一下my.ini文件中有这样一段:
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(存储引擎启用严格模式,非法数据值被拒绝)。这也就是为什么我们插入数据时返回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;