programing

null 값을 외부 키 필드에 전달하는 방법?

powerit 2023. 9. 15. 21:27
반응형

null 값을 외부 키 필드에 전달하는 방법?

테이블이 두 개 있습니다.

university:

university_id(p.k) | university_name

그리고.user:

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표, 그러나 학생이 어떤 대학 이름을 선택하지 않는 경우, 는 null 값을 다음에 전달해야 합니다.user을 위한 식탁university_id들판.

열만 허용university_id탁상의user허락하다, 허용하다, 허용하다, 허용하다, 허용하다,NULLnull을 저장할 수 있도록 값을 지정합니다.

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);

추가로, 쿼리는 변수의 이 외부에서 가져온 경우 취약합니다.아래 기사를 보고 예방법을 알아보세요.사용함으로써PreparedStatements값을 중심으로 작은 따옴표를 사용하는 것을 없앨 수 있습니다.

여기 내가 외국 열쇠를 가지고 있다고 가정합니다.user_id그리고 그것을 위해 null 값을 위해 null 값을 삽입합니다.

enter image description here

외래 키에 대한 삽입 null 값을 확인하려면 확인란을 선택해야 합니다.

MySQL InnoDB를 사용하고 있었고 심지어 FK열에 NULL을 허용하고 NULL을 기본으로 사용하고 있었는데 오류가 발생했습니다.그래서 SET 구문을 사용했습니다.

INSERT INTO (table) SET value1=X...

그리고 FK열을 설정하지 않을 뿐입니다.

언급URL : https://stackoverflow.com/questions/15082874/how-to-pass-a-null-value-to-a-foreign-key-field

반응형