Foreign Key 요약정리

띵훈·2021년 8월 22일
0

예시를 통한 Foreign Key의 이해

DROP DATABASE IF EXISTS sqlDB;
CREATE DATABASE sqlDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
USE sqlDB;
DROP TABLE IF EXISTS userTbl;
CREATE TABLE userTbl (
    userID CHAR(8) NOT NULL PRIMARY KEY,
    name  VARCHAR(10) NOT NULL,
    birthYear INT NOT NULL,
    addr  CHAR(2) NOT NULL,
    mobile1 CHAR(3),
    mobile2 CHAR(8),
    height SMALLINT,
    mDate  DATE
) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
DROP TABLE IF EXISTS buyTbl;
CREATE TABLE buyTbl (
    num INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
    userID CHAR(8) NOT NULL,
    prodName CHAR(4),
    groupName CHAR(4),
    price  INT NOT NULL,
    amount  SMALLINT NOT NULL,
    FOREIGN KEY (userID) REFERENCES userTbl(userID) 
    ## **가장 중요한 부분** userTbl에 만약 userID와 동일한 프라이머리 키가 존재하지 않으면 에러가 발생, 
    그 반대로 userTbl에서 데이터를 삭제할 경우 
    butTbl에 그 키 값을 참조하는 데이터가 존재하면 에러가 발생한다##
) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
profile
안뇽하세용

0개의 댓글