mysql 错误 1364 字段没有默认值 [英] mysql error 1364 Field doesn't have a default values

查看:33
本文介绍了mysql 错误 1364 字段没有默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的桌子看起来像

create table try ( name varchar(8), CREATED_BY varchar(40) not null);

然后我有一个触发器来自动填充 CREATED_BY 字段

and then I have a trigger to auto populate the CREATED_BY field

create trigger autoPopulateAtInsert BEFORE INSERT on try for each row set new.CREATED_BY=user();

当我使用

insert into try (name) values ('abc');

输入已在表中,但我仍然收到错误消息

the entry is made in the table but I still get the error message

Field 'CREATED_BY' doesn't have a default value Error no 1364

有没有办法在不使字段为空且不删除触发器的情况下抑制此错误?否则我的休眠会看到这些异常(即使已经进行了插入),然后应用程序将崩溃.

Is there a way to suppress this error without making the field nullable AND without removing the triggfer? Otherwise my hibernate will see these exceptions ( even though the insertions have been made) and then application will crash.

推荐答案

Created_By 设置一个默认值(例如:空 VARCHAR),触发器将更新该值无论如何.

Set a default value for Created_By (eg: empty VARCHAR) and the trigger will update the value anyways.

create table try ( 
     name varchar(8), 
     CREATED_BY varchar(40) DEFAULT '' not null
);

这篇关于mysql 错误 1364 字段没有默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆