![[MariaDB] 외래키(2)](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D%255BMariaDB%255D%2520%25EC%2599%25B8%25EB%259E%2598%25ED%2582%25A4%282%29%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3DCoding_study&w=2048&q=75)
외래키(FOREIGN KEY)
: 테이블과 테이블을 연결하는데 사용
연결된 테이블에 있는 데이터만 입력이 가능함forein key 문법을 잘 기억해야 함
foreign key(식별되는 컬럼) references 참조 테이블명 (식별되는

사원 테이블에서 식별 가능한 키를 사원게시판 테이블에서의 항목이 외래키로 불림
참조하는 테이블의 해당 컬럼이 기본키가 무조건 100%가 아닐 수 있음
그럴때 empno의 제약 조건은 unique/ 식별만 되면 됨
다른게 기본키의 경우 기본키가 되었든 아니든 unique가 되어야함
사원테이블: create table 할때 empno int primary key 사원게시판 테이블: create table 할때 empno int foreign key(empno) references 사원테이블(empno)
사원테이블의 empno 컬럼과 사원게시판 테이블의 empno와 관련이 있음
사원테이블: create table 할때 empno char(4) primary key 사원게시판 테이블: create table 할때 empno char(4) foreign key(empno) references 사원테이블(eno)
사원테이블의 empno 컬럼과 사원게시판 테이블의 eno와 관련이 있음
주의 사항: 항목명은 똑같지 않아도 되고 데이터 타입이 일치해야 함

1번 게시판의 작성 사원을 알 수가 없음
이미 작성한 테이블이라 문제는 없지만 이것으로 후속 작업을 할때는 문제가 생김
사원 테이블이 수정될대 사원 게시판에 내용이 자동으로 바뀌는 것도 있음
사원테이블: create table 할때 empno char(4) primary key 사원게시판 테이블: create table 할때 empno char(4) foreign key(empno) references 사원테이블(eno) on update cascade
사원테이블의 empno 컬럼과 사원게시판 테이블의 eno와 관련이 있음
사원 테이블에 update가 발생하면 사원 게시판 테이블에도 적용됨
- * on update cascade: 한 테이블에 수정사항을 연결된 테이블에도 적용


사원 테이블과 사원 게시판 테이블 생성

외래키 사용
- * 테이블 생성시) on update cascade: data를 수정해도 참조받는 테이블에서 자동 업데이트 됨

자동 업데이트

참조하는 테이블의 data 삭제시 오류 발생
- * 테이블 생성시) ON DELETE SET null: data를 삭제해도 자동 반영되고 흔적을 남김
IN DELETE FROM 참조하는 테이블명 WHERE 항목명 = 조건;

참조하는 테이블의 data 삭제

삭제된 흔적이 남음
Share article