본문 바로가기
SQL, Database

SQL: FK설정하기 / FK 세팅

by yj-data 2025. 8. 8.
CREATE TABLE money(
	ui INT
    , am INT
    , FOREIGN KEY (ui) REFERENCES user(ui)
);

DESC money;

FOREIGN KEY 설정하고나면 KEY 에 MUL(MULTI) 이 뜸

이제 money 테이블에 있는 ui 는 user 테이블에 있는 ui 에 있는 값만 입력이 가능함.

 

생기는 에러: 

money 테이블 ui에 이상한 값 넣으면 생기는 에러:

Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`fkbda`.`money`, CONSTRAINT `money_ibfk_1` FOREIGN KEY (`ui`) REFERENCES `user` (`ui`))

 

user테이블의 ui를 삭제하려고하면 생기는 에러:

Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (`fkbda`.`money`, CONSTRAINT `money_ibfk_1` FOREIGN KEY (`ui`) REFERENCES `user` (`ui`))

 


fk setting : PK 열에 있는 데이터를 바꿀때, FK 행에 있는 데이터는 어떻게 되는가?

               : update할때, delete 할때 각각 다 설정해줄 수 있음

cascade - 동기화

set null - null로 변경

set default - default로 변경

restrict - 무결성이 깨지면 에러 발생시킴 (기본 설정)

CREATE TABLE money(
	ui INT
    , am INT
    , FOREIGN KEY (ui) REFERENCES user(ui)
    ON UPDATE CASCADE ON DELETE SET NULL
);

이런식으로 작성

'SQL, Database' 카테고리의 다른 글

SQL: DDL/DML/DCL 비교  (1) 2025.08.12
SQL 함수(FUNCTION)  (2) 2025.08.08
MYSQL 오류해결: Cannot connect to server...  (0) 2025.06.20
기타 mysql code (업데이트 중)  (0) 2025.06.18
테이블 제약 조건(constraints)  (0) 2025.06.18