[root@localhost ~]# mysql --version
mysql Ver 14.14 Distrib 5.6.47, for Linux (x86_64) using EditLine wrapper
[root@localhost ~]#
在mysql的配置文件my.cnf的[mysqld]模块下添加
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
可以直接使用命令来验证是否生效:
set global SQL_MODE="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
创建测试表和插入数据:
create table t1(id int,name VARCHAR(100) not null);
insert into t1(id)VALUES(1);
删除创建的测试表t1:
drop table t1;
这种方法并不能解决date时间字段,比如
`ssr` date NOT NULL DEFAULT '0000-00-00' COMMENT '',
可以将ssr的date类型改为timestamp
`ssr` timestamp NULL DEFAULT '0000-00-00 00:00:00' COMMENT '',
提示invalid default value for update_time(mysql 5.6不会有这个问题,5.7会)
set @@global.sql_mode=(select replace(@@sql_mode,'NO_ZERO_IN_DATE,NO_ZERO_DATE',''));
这时可以drop 掉alter table it_student drop column ssr
alter table it_student add column `ssr` timestamp NULL DEFAULT '0000-00-00 00:00:00' COMMENT ''