(초보)간단한 sql문 작성 질문을 드립니다.
CREATE TABLE member (
member_seq int AUTO_INCREMENT PRIMARY KEY,
id varchar(20),
password varchar(20),
phone varchar(20),
email varchar(20),
address_seq int,
CONSTRAINT fk_member_address FOREIGN KEY (address_seq) REFERENCES address(address_seq) ON DELETE CASCADE
);
CREATE TABLE address (
address_seq int AUTO_INCREMENT PRIMARY KEY,
zipcode varchar(10),
sodo varchar(10),
gugun varchar(10),
dong varchar(20),
ri varchar(20),
bunji varchar(20)
);
제가 하고싶은것은 id 삭제했을떄 address 참조 값들도 같이 삭제를 하고싶습니다.
delete from member where id='test123'; 삭제시 address테이블에 해당 테이블도 같이 삭제하고싶어
on delete cascade 를 걸었지만.. id 테이블의 test123 컬럼 값들만 삭제되는거였습니다. .
어느 부분이 잘못된건지 생각해봐도 잘몰라서 질문올립니다 .
member 테이블에서 id가 test123인 값을 삭제할 때
해당 로우가 어느 address_seq를 의미하는지 address 테이블에서 알 수 없기 때문에
address 테이블에서 알 수 있도록 다음과 같이 address에 외래키를 추가해야 합니다.