데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
SQL 쿼리문 질문입니다.
테이블을 TEST1, TEST2 두개 만들었습니다.
이중 TEST2에 PK, FK설정에 관해 질문드립니다.
CREATE TABLE TEST2(
CODE1 VARCHAR(30) NOT NULL,
CODE2 CHAR(3) NOT NULL,
CODE3 VARCHAR(20) NOT NULL,
LINE1 VARCHAR(50),
LINE1_TITLE VARCHAR(20),
LINE2 VARCHAR(50),
LINE2_TITLE VARCHAR(20),
LINE3 VARCHAR(50),
LINE3_TITLE VARCHAR(20),
)
여기서
1. CODE1, CODE2, CODE3을 모두 PRIMARY KEY로 설정하고,
2. CODE1과 CODE2는 먼저 생성되어있는 TEST1 테이블의 PK값인 CODE1, CODE2와 FOREIGN KEY로 설정하고 싶은데,
중복된 PRIMARY KEY와 FOREIGN KEY를 설정하는 쿼리문을 어떻게 짜야 하는지 몰라서 질문드립니다 ㅠㅠ
Comment 1
-
건우아빠
2017.12.05 20:02
CREATE TABLE TEST1(CODE1 VARCHAR(30) NOT NULL,CODE2 VARCHAR(3) NOT NULL,NAME VARCHAR(50) ,CONSTRAINT TEST1_PK PRIMARY KEY ( CODE1, CODE2 ))CREATE TABLE TEST2(CODE1 VARCHAR(30) NOT NULL,CODE2 VARCHAR(3) NOT NULL,CODE3 VARCHAR(20) NOT NULL,LINE1 VARCHAR(50),LINE1_TITLE VARCHAR(20),CONSTRAINT TEST2_PK PRIMARY KEY ( CODE1, CODE2 , CODE3 ) ,CONSTRAINT TEST2_TEST1_FK FOREIGN KEY (CODE1, CODE2) REFERENCES TEST1(CODE1, CODE2))INSERT TEST1 VALUES ('0000','000','AAAA')INSERT TEST1 VALUES ('0000','001','BBBB')INSERT TEST2 VALUES ('0000','000','001','LIEN1','LIEN1')(1개 행이 영향을 받음)INSERT TEST2 VALUES ('0000','001','001','LIEN2','LIEN2')(1개 행이 영향을 받음)INSERT TEST2 VALUES ('0000','002','001','LIEN3','LIEN3')메시지 547, 수준 16, 상태 0, 줄 2INSERT 문이 FOREIGN KEY 제약 조건 "TEST2_TEST1_FK"과(와) 충돌했습니다. 데이터베이스 "tempdb", 테이블 "dbo.TEST1"에서 충돌이 발생했습니다.문이 종료되었습니다.