Почему столбец со значением NULL не принимает значение NULL в операторе вставки? - PullRequest
0 голосов
/ 10 февраля 2019

У меня в настоящее время есть таблица, в которой есть столбец 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 равно нулю, выдает ошибку, что-то не так с тем, что я сделал?Этого не было раньше, так как я смог вставить значения, где 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,запрос проходит без ошибок.Я также безуспешно пытался повторить проблему на более простых схемах стола.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...