CA 40 – Alter Tables

발행: (2026년 3월 29일 PM 10:37 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

customers 테이블에서 email을 NOT NULL로 설정

ALTER TABLE customers
ALTER COLUMN email SET NOT NULL;

앞으로 삽입되는 행은 반드시 email 값을 가져야 합니다.

users 테이블에서 username을 고유하게 설정

ALTER TABLE users
ADD CONSTRAINT unique_username UNIQUE (username);

중복된 사용자 이름을 방지합니다.

products 테이블에 체크 제약조건 price > 0 추가

ALTER TABLE products
ADD CONSTRAINT price_check CHECK (price > 0);

이제 가격은 0이거나 음수가 될 수 없습니다.

orders 테이블에서 status의 기본값을 'pending'으로 설정

ALTER TABLE orders
ALTER COLUMN status SET DEFAULT 'pending';

status가 제공되지 않으면 자동으로 'pending'으로 설정됩니다.

employees 테이블에 조건을 가진 salary 컬럼 추가

ALTER TABLE employees
ADD COLUMN salary INT NOT NULL;

ALTER TABLE employees
ADD CONSTRAINT salary_check CHECK (salary > 10000);

salary는 NULL일 수 없으며 10,000보다 커야 합니다.

외래키를 수정하여 부서를 삭제하면 해당 부서의 직원도 삭제되도록 함

ALTER TABLE employees
DROP CONSTRAINT employees_department_id_fkey;

ALTER TABLE employees
ADD CONSTRAINT employees_department_id_fkey
FOREIGN KEY (department_id)
REFERENCES departments(id)
ON DELETE CASCADE;

이제 부서를 삭제하면 해당 부서에 속한 직원들이 자동으로 삭제됩니다.

accounts 테이블에서 체크 제약조건 balance >= 0 제거

ALTER TABLE accounts
DROP CONSTRAINT accounts_balance_check;

balance 컬럼에 대한 체크 제약조건을 제거합니다.

payments 테이블에서 user_idtransaction_id 조합을 고유하게 설정

ALTER TABLE payments
ADD CONSTRAINT unique_payment UNIQUE (user_id, transaction_id);

같은 사용자의 중복 거래를 방지합니다.

이번 연습을 통해 ALTER TABLE이 테이블을 삭제하지 않고 구조를 수정하는 데 사용되며, 데이터베이스에 이미 데이터가 존재할 때 매우 유용하다는 것을 배웠습니다.

0 조회
Back to Blog

관련 글

더 보기 »

ALTER 테이블

1. customers 테이블의 email 컬럼을 NOT NULL로 설정합니다: ALTER TABLE customers ALTER COLUMN email SET NOT NULL; 2. users 테이블에서 username이 unique하도록 보장합니다: ALTER TABLE…

ALTER 쿼리

이번 과제에서는 ALTER TABLE을 사용하여 기존 테이블을 수정하는 작업을 수행했습니다. 이를 통해 테이블을 다시 생성하지 않고도 제약 조건을 업데이트하는 방법을 이해할 수 있었습니다. Task...