ERROR 1067 (42000): Invalid default value for 'birth'
create table test3(
star varchar(20) not null default '',
birth date not null default '0000-00-00'
)engine myisam charset utf8;
錯誤:
ERROR 1067 (42000): Invalid default value for ‘birth’
原因:
原文
是因為sql_mode中的NO_ZEROR_DATE導制的,在strict mode中不允許’0000-00-00’作為合法日期
使用下面的命令檢視sql_mode
mysql>show variables like ‘sql_mode’;
±--------------±------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
±--------------±------------------------------------------------------------------------------------------------------------------------------------------+
| sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
±--------------±------------------------------------------------------------------------------------------------------------------------------------------+
將上面的NO_ZERO_DATE改為下面的 ALLOW_INVALID_DATES
mysql> set sql_mode=‘ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;
上面的設定是臨時設定,在重新登陸後,該設定又恢復為NO_ZERO_DATE
永久修改辦法:
修改my.cnf檔案,在[mysqld]中新增
sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重啟mysql
作者:藍星花
來源:CSDN
原文:https://blog.csdn.net/m0_37499059/article/details/79186829
版權宣告:本文為博主原創文章,轉載請附上博文連結!
刪除線格式
stackoverflow
Simply, before you run any statements put this in the first line:
SET sql_mode = '';
shareimprove this answer