我目前有一个包含null
列的表,但是在执行插入语句时,MySQL数据库会抛出一个错误,提示#1048 - Column 'admi_name' cannot be null
。
这是表查询:
drop table if exists `tbl__users`;
create table `tbl__users`(
`user_email` varchar(256) not null,
`user_last_name` varchar(256) not null,
...
`user_bank_iban` varchar(32) not null,
`admi_name` varchar(128) null, -- Admin that approved the account
constraint PK__USERS primary key (`user_email`),
constraint FK__USERS__ADMINS foreign key (`admi_name`) references `tbl__admins` (`admi_name`)
);
执行admi_name
为null的插入语句会引发错误,我的操作是否有问题?以前没有发生这种情况,因为我能够在admi_name
为空的情况下插入值,但是突然之间MySQL表示这是错误的。
此外,我知道列数据类型是错误的,请不要紧记。
当我调用具有插入语句的存储过程时遇到了这个问题。由于错误指向插入语句,因此我尝试了查询
insert into `tbl__users` (`user_email`,
`user_last_name`,
...,
`admi_name`) values ('john@doe.com', 'Doe', ... , null);
查询仍然引发错误#1048 - Column 'admi_name' cannot be null
。仍然不知道错误是什么。
我遇到的一件奇怪的事情是,如果我在admi_name
上放置一个有效值,然后执行更新查询,将admi_name
列更改为null
,该查询将顺利进行。我还尝试在没有任何运气的情况下在更简单的表设计上复制该问题。