Q : 자동 증가에 의존하지 않고 각 specialpost
INSERT에서 수동으로 기본 키를 지정하면 어떤 문제가 발생할 수 있습니까?
A : PRIMARY KEY 제약 조건 (또는 PRIMARY KEY 제약 조건)으로 정의 된 열에 값을 제공하는 데 문제가 없습니다 (데이터베이스 측면에서).
post
테이블에 삽입 된 행의 auto_increment 값 id
값을 결정/검색하는 것이 문제입니다.
SELECT LAST_INSERT_ID();
그리고 당신이 반환 값을 제공 할 수 있습니다 :합니다 (post
테이블에 단일 행을 삽입) 싱글 삽입, 그것이 INSERT 다음의 AUTO_INCREMENT 컬럼에 할당 된 값을 검색 할 수있을만큼 쉽게 들어
specialpost
에 대한 INSERT 테이블에 있습니다. 당신은 또한 또한 원하는 것처럼
(다중 행 삽입에 대한 것을 참고, LAST_INSERT_ID (에 의해 반환 된 값)가 첫 행에 할당 값이됩니다.) 당신이 무엇을 설명에서
, 그것은 소리 두 테이블 사이에 FOREIGN KEY 제약 조건을 정의하고 specialpost
은 행을 참조하는 post
입니다. 예를 들어
:
post
(id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY
specialpost
(post_id INT UNSIGNED PRIMARY KEY
, CONSTRAINT FK_specialpost_post FOREIGN KEY (post_id) REFERENCES post (id)
는 다시 외래 키는 무엇을해야합니까? – Mihai
그건 외래 키이고, 특별한 일을하지 않아도됩니다. select last_insert_id(); special_posts ($ last_id)에 삽입하십시오. –
관계가 변경되지 않는 한 아무런 문제가 없습니다. PK/FK (외래 키인 기본 키)는 완벽하게 받아 들일 수 있습니다. 예를 들어, EF 코드는 먼저 1 => 1 또는> => 0-1 관계를 관리합니다. –