我的 table 看起来像
create table try ( name varchar(8), CREATED_BY varchar(40) not null);
然后我有一个触发器来自动填充 CREATED_BY 字段
create trigger autoPopulateAtInsert BEFORE INSERT on try for each row set new.CREATED_BY=user();
当我使用
进行插入时insert into try (name) values ('abc');
在表格中创建了条目,但我仍然收到错误消息
Field 'CREATED_BY' doesn't have a default value Error no 1364
有没有办法在不使字段为空且不删除触发器的情况下抑制此错误?否则我的休眠将看到这些异常(即使已经进行了插入),然后应用程序将崩溃。
最佳答案
这是由
中定义的STRICT_TRANS_TABLES
SQL模式引起的
%PROGRAMDATA%\MySQL\MySQL Server 5.6\my.ini
文件。删除该设置并重新启动 MySQL 应该可以解决问题。
如果编辑该文件不能解决问题,请参阅 http://dev.mysql.com/doc/refman/5.6/en/option-files.html其他可能的配置文件位置。
关于mysql错误1364字段没有默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15438840/