mysql错误1364字段没有默认值

标签 mysql

我的 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 应该可以解决问题。

https://www.farbeyondcode.com/Solution-for-MariaDB-Field--xxx--doesn-t-have-a-default-value-5-2720.html

如果编辑该文件不能解决问题,请参阅 http://dev.mysql.com/doc/refman/5.6/en/option-files.html其他可能的配置文件位置。

关于mysql错误1364字段没有默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15438840/

相关文章:

mysql - 如何使用 MYSQL 将字符串拆分为表中的多行?

php - 按电子邮件分组并获取组中最早创建的日期 - Laravel Eloquent

mysql - 使用聚合函数 SQL 进行计数

php - 拉维尔 : highest id used in a column

php - 在 PHP 上提交表单后如何重定向到新的详细数据

mysql - MySQL 上的更新触发器不起作用

php - 在 PHP 中将日期和时间转换为 GMT,反之亦然......?

java - 如何防止在两个事务中产生重复值

mysql - 使用连接获取第二个表中不存在的记录

mysql - 相同的查询结果与本地的值相同,但在服务器上它显示空结果