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 |