<aside> 📖
학습 목표
-- FK 없는 경우: 에러 없이 유령 데이터 삽입
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
member_id INT,
order_date TIMESTAMP DEFAULT now()
);
INSERT INTO orders (member_id, order_date)
VALUES (9999, now()); -- members에 9999 없음
문제점:
CREATE TABLE members (
member_id SERIAL PRIMARY KEY
);
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
member_id INT REFERENCES members(member_id) ON DELETE CASCADE
);
-- 주문이 있는 회원 삭제 시
DELETE FROM members WHERE member_id = 1;
-- 연결된 orders 자동 삭제됨 (예상하지 못한 데이터 손실)
문제점:
-- NOT NULL 누락 예시
CREATE TABLE members (
name VARCHAR(100), -- NULL 허용
email VARCHAR(100)
);
INSERT INTO members (name, email)
VALUES (NULL, '[email protected]'); -- 허용됨
문제점: