MySQL에서 외래키 설정하기
작성자 : 김영철
등록날짜 : 2009.01.29 15:31
MySQL에서 외래키 설정하기
MySQL3.23.53버전에서 테스트 하였는데 외래키는 정상적으로 처리되었으나 자식테이블(여기서는 score)
에 레코드 값이 살아있음에도 부모 테이블의 특정 컬럼들의 데이터를 삭제할 수 있었다.
이럴 경우 어떤 회사의 사원은 회사에서 일하고 있는데 그 사원에 대한 정보는 남아있지 않는
말도 안되는 상황이 벌어질 수 있다.
따라서 상위버전에서 다시 테스트 한 후 다시 글을 올리도록 하겠습니다.
참고하시기 바랍니다.
MySQL3.23.53버전에서 테스트 하였는데 외래키는 정상적으로 처리되었으나 자식테이블(여기서는 score)
에 레코드 값이 살아있음에도 부모 테이블의 특정 컬럼들의 데이터를 삭제할 수 있었다.
이럴 경우 어떤 회사의 사원은 회사에서 일하고 있는데 그 사원에 대한 정보는 남아있지 않는
말도 안되는 상황이 벌어질 수 있다.
따라서 상위버전에서 다시 테스트 한 후 다시 글을 올리도록 하겠습니다.
참고하시기 바랍니다.
CREATE TABLE reviewing
(
reviewingid INTEGER ,
papername text,
reviewername text,
PRIMARY KEY(reviewingid)
);
CREATE TABLE score
(
reviewingid integer,
questionnumber integer,
score integer,
FOREIGN KEY (reviewingid) REFERENCES reviewing (reviewingid) on delete cascade
);
insert into reviewing values (1,"how to survive","John Doe") ;
insert into score values(1,1,5);
delete from reviewing where reviewingid = 1;
Insert the record in the table reviewing, and then insert the record into the table score which reviewingid in table score is referenced to reviewingid in reviewing table.
When deleting the record in the reviewing table, the record in the score with the same reviewerid is also deleted as well, because of the "on delete cascade" clause.
[출처] 태쥐
"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기, 각종 광고, 영업, 판매, 제안서, 전단지 반응율 3배×10배 이상 높이는 마법의 8단계 공식" |
☞자세히보기 |
|
|