2012-04-15 2 views
0

나는 음악이라는 데이터베이스를 가지고 있으며 내부에 4 개의 테이블이 있습니다.데이터베이스에서 모든 항목 정보 삭제 (MySQL)

  1. band_members
  2. 밴드
  3. CD를
  4. 출시.

데이터베이스에서 cd005 (cd_id 열 항목)와 관련된 모든 정보를 삭제하고 싶습니다.

는 내가 모든 개인 테이블에

DELETE FROM table_name WHERE cd_id='cd005' 

를 사용할 수도 있겠죠,하지만 난 한 번에 전체 데이터베이스에서이 ID에 관련된 데이터를 삭제하여이 문제를 해결할 수있는 방법이 있는지 알고 싶습니다 .

답변

1

예, 방법이 있습니다. 외래 키 캐스케이드 삭제에 대해서는 mysql 문서를 확인하십시오.

예 :

CREATE TABLE parent (id INT NOT NULL, 
        PRIMARY KEY (id) 
) ENGINE=INNODB; 
CREATE TABLE child (id INT, parent_id INT, 
        INDEX par_ind (parent_id), 
        FOREIGN KEY (parent_id) REFERENCES parent(id) 
         ON DELETE CASCADE 
) ENGINE=INNODB; 

Insert into parent set id=1; 
Insert into parent set id=2; 
Insert into parent set id=3; 
Insert into child set id=1, parent_id=1; 
Insert into child set id=2, parent_id=1; 


select * from parent; 
select * from child; 
delete from parent where id=1; 
select * from parent; 
select * from child; 


ID 
1 
2 
3 
Record Count: 3; Execution Time: 0ms View Execution Plan 
ID PARENT_ID 
1 1 
2 1 
Record Count: 2; Execution Time: 0ms View Execution Plan 
Record Count: 0; Execution Time: 1ms 
ID 
2 
3 
Record Count: 2; Execution Time: 0ms View Execution Plan 
Record Count: 0; Execution Time: 0ms 
+0

나는 계단식 삭제 사용할 수 있습니다 어떻게 계단식 – sikas

+0

와 함께 갈 것인가? 나는 나의 테이블에서 cd_id를 기본 테이블 키로 사용하고 있음을 알 수있다. 나는 그것을 삭제하면 모든 하위 항목도 삭제되어야한다고 생각합니까? –

관련 문제