본문 바로가기
MySql

MySQL null 값을 외래 키 필드에 전달하는 방법은 무엇입니까?

by 베이스 공부 2021. 1. 10.
반응형

2 개의 테이블이 있습니다.

대학 :

university_id(p.k) | university_name

사용자 :

uid | name | university_id(f.k)

사용자 테이블에서 university_id NULL 을 유지하는 방법은 무엇입니까?

하나의 쿼리 만 작성하고 있습니다. 내 쿼리는 다음과 같습니다.

INSERT INTO user (name, university_id) VALUES ($name, $university_id);

여기서 $ university_id 는 프런트 엔드에서 null 일 수 있습니다.

university 테이블은 기본적으로 설정됩니다.

프런트 엔드에서 학생은 university_id user 테이블에 전달된다는 것에 따라 대학 이름을 선택하지만 학생이 대학 이름을 선택하지 않으면 통과해야합니다. university_id 필드의 user 테이블에 null 값이 있습니다.

 

해결 방법

 

user 테이블의 university_id 열에서 NULL 값을 허용하면 null 을 저장할 수 있습니다.

CREATE TABLE user
(
   uid INT NOT NULL,
   Name VARCHAR(30) NOT NULL, 
   university_ID INT NULL,    -- <<== this will allow field to accept NULL
   CONSTRAINT user_fk FOREIGN KEY (university_ID)
       REFERENCES university(university_ID)
)

업데이트 1

댓글에 따라 ''가 아닌 NULL 을 삽입해야합니다.

insert into user (name,university_id) values ('harjeet', NULL)

업데이트 2

$university_id = !empty($university_id) ? "'$university_id'" : "NULL";
insert into user (name,university_id) values ('harjeet', $university_id);



 

참조 페이지 https://stackoverflow.com/questions/15082874

 

 

반응형

댓글