Mysql 为什么可为null的列在insert语句上不接受null值?
我目前有一个表有一个Mysql 为什么可为null的列在insert语句上不接受null值?,mysql,mariadb,Mysql,Mariadb,我目前有一个表有一个null列,但在执行insert语句时,MySQL数据库抛出一个错误,表示\1048-列'admi\u name'不能为null 以下是表查询: drop table if exists `tbl__users`; create table `tbl__users`( `user_email` varchar(256) not null, `user_last_name` varchar(256) not null, ...
null
列,但在执行insert语句时,MySQL数据库抛出一个错误,表示\1048-列'admi\u name'不能为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的情况下执行insert语句会引发错误,我所做的是否有问题?这以前没有发生过,因为我能够在admi_name
为空的位置插入值,但突然MySQL说这是错误的
另外,我知道列数据类型是错误的,现在不管怎样
我在调用具有insert语句的存储过程时遇到了这个问题。因为错误指向insert语句,所以我尝试了查询
insert into `tbl__users` (`user_email`,
`user_last_name`,
...,
`admi_name`) values ('john@doe.com', 'Doe', ... , null);
查询仍然抛出错误#1048-列'admi_name'不能为null
。仍然不知道错误是什么
我遇到的一件奇怪的事情是,如果我在
admi_name
上放置一个有效值,然后执行一个更新查询,将admi_name
列更改为null
,则查询不会出错。我还尝试在更简单的表设计上复制这个问题,但没有任何运气。admi_name
在表tbl__管理员
上不能NULL
?是的。不将null
作为输入编辑的可空列:表是tbl\u用户
为什么不能为空?我不明白你的问题。@MacGyver问题是为什么我不能将null
插入一个应该允许null
作为值的列中。null
应该出现在该列中的原因是,如果该帐户尚未获得管理员批准,则应该存在一个null
管理员帐户。一旦用户获得批准,管理员帐户才能出现在该栏中。我希望您有完整的安全有效的证书,可以保存银行交易详细信息?表tbl\u admins
上的admi\u name
不能为NULL
?是的。不将null
作为输入编辑的可空列:表是tbl\u用户
为什么不能为空?我不明白你的问题。@MacGyver问题是为什么我不能将null
插入一个应该允许null
作为值的列中。null
应该出现在该列中的原因是,如果该帐户尚未获得管理员批准,则应该存在一个null
管理员帐户。一旦用户被批准,只有这样,管理员帐户才能在该栏中。我希望您有完整的安全和有效的证书,可以保存银行交易的详细信息?