programing

nullable 열은 insert 문에 null 값을 사용하지 않는 이유는 무엇입니까?

sourcetip 2022. 10. 8. 16:43
반응형

nullable 열은 insert 문에 null 값을 사용하지 않는 이유는 무엇입니까?

현재 테이블이 있습니다.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_namenull이 에러를 발생시킵니다.제가 한 일에 무슨 문제가 있나요?이전에는 이런 일이 일어나지 않았습니다.왜냐하면 값을 삽입할 수 있었기 때문입니다.admi_namenull이었는데 갑자기 MySQL이 잘못되었다고 합니다.

또한 열 데이터 유형이 잘못된 것도 알고 있으므로 지금은 신경 쓰지 마십시오.

insert 문이 있는 스토어드 프로시저를 호출했을 때 이 문제를 발견했습니다.오류가 삽입문을 가리키고 있었기 때문에 쿼리를 시도했습니다.

    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쿼리는 오류 없이 통과합니다.또, 단순한 테이블 디자인에도 재현을 시도했지만, 운은 없었습니다.

언급URL : https://stackoverflow.com/questions/54617968/how-come-a-nullable-column-does-not-take-null-value-on-insert-statement

반응형