- 전체
- Sample DB
- database modeling
- [표준 SQL] Standard SQL
- G-SQL
- 10-Min
- ORACLE
- MS SQLserver
- MySQL
- SQLite
- postgreSQL
- 데이터아키텍처전문가 - 국가공인자격
- 데이터 분석 전문가 [ADP]
- [국가공인] SQL 개발자/전문가
- NoSQL
- hadoop
- hadoop eco system
- big data (빅데이터)
- stat(통계) R 언어
- XML DB & XQuery
- spark
- DataBase Tool
- 데이터분석 & 데이터사이언스
- Engineer Quality Management
- [기계학습] machine learning
- 데이터 수집 및 전처리
- 국가기술자격 빅데이터분석기사
- 암호화폐 (비트코인, cryptocurrency, bitcoin)
MySQL [mysql] FOREIGN KEY 연관된 데이터 삭제 ON DELETE CASCADE
2018.12.16 14:53
[mysql] FOREIGN KEY 연관된 데이터 삭제 ON DELETE CASCADE
FOREIGN KEY를 이용하면 데이터를 외부 참조를 할 수있다.
다시 말하면 이 데이터는 다른 테이블에서 사용 중이니깐 함부로 건들지 마세요가 된다. 결국은 delete와 update가 제약적이다.
상위 테이블
하위 테이블
father의 id값을 good_daughter에서 father_id라는 놈이 쓰고 있다.
다른 테이블에서 참조가 되있기 때문에 father.id를 제거하려고 하자 에러를 띄운다.
하지만 자식 테이블에서는 제거가 된다.
여기서 부모 테이블에서 해당 데이터를 삭제를 했을시 자식 테이블에서도 삭제가 되기를 원한다면
을 추가해 주면 된다.
ALTER를 이용하여 속성을 변경 하거나
처럼 속성을 추가하여 table을 생성을 해준다.
foregin key를 만들기 위해서는 약간의 조건이 필요 1. table type = innodb 2. 해당 부모 컬럼의 key가 unique여야 한다.
추가적으로 자식 컴럼에서 외부참조를 하게 되면 key가 MUL로 뜨게 된다.
이제 부모 컬럼에서 데이터를 삭제를 하면 해당 컴럼의 데이터를 가지고 있는 자식 컴럼의 데이터가 사라진다.
에러 없이 제거완료
자식 데이터도 함께 제거된다.
상위 테이블로 부터 하위 테이블의 모든 정보를 없앨때는 위처럼 컴럼 속성을 주면 될거같다.
[출처] https://blog.naver.com/pjt3591oo/220617636202 |
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 공지 | 오라클 기본 샘플 데이터베이스 | 졸리운_곰 | 2014.01.02 | 86287 |
| 공지 | [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE | 가을의 곰을... | 2013.02.10 | 78744 |
| 공지 | [G_SQL] Sample Database | 가을의 곰을... | 2012.05.20 | 95487 |

