CHECK
์ ์
CHECK๋ ์ปฌ๋ผ์ ์
๋ ฅ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ฒดํฌํ์ฌ ํน์ ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ง ์
๋ ฅ๋ ์ ์๋๋ก ํ๋ ์ ์ฝ์กฐ๊ฑด์
๋๋ค.
ํน์ง
โข
์ปฌ๋ผ์ ๊ฐ์ด TRUE ๋๋ 1์ด์ด์ผ๋ง ๋ฐ์ดํฐ๊ฐ ์
๋ ฅ๋ฉ๋๋ค.
โข
์ปฌ๋ผ ๋ ๋ฒจ๊ณผ ํ
์ด๋ธ ๋ ๋ฒจ์์ ๋ชจ๋ ์ ์ํ ์ ์์ต๋๋ค.
โข
WHERE ์ ์์ ์ฌ์ฉํ ์ ์๋ ์กฐ๊ฑด์์ ์ง์ ํ ์ ์์ต๋๋ค.
โข
ํ๋์ ์ปฌ๋ผ์ ์ฌ๋ฌ ๊ฐ์ CHECK ์ ์ฝ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ต๋๋ค.
์ฝ๋
์์ฑ
-- ์ปฌ๋ผ ๋ ๋ฒจ CHECK ์ ์ฝ์กฐ๊ฑด
CREATE TABLE employees (
id INT,
age INT CHECK (age >= 20),
salary DECIMAL(10,2) CHECK (salary > 0)
);
-- ํ
์ด๋ธ ๋ ๋ฒจ CHECK ์ ์ฝ์กฐ๊ฑด
CREATE TABLE products (
id INT,
price DECIMAL(10,2),
discount DECIMAL(10,2),
CONSTRAINT check_price CHECK (price > discount)
);
SQL
๋ณต์ฌ
์์
-- CHECK ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ
ALTER TABLE employees
ADD CONSTRAINT check_age CHECK (age >= 20);
-- CHECK ์ ์ฝ์กฐ๊ฑด ๋นํ์ฑํ
ALTER TABLE employees
NOCHECK CONSTRAINT check_age;
SQL
๋ณต์ฌ
์ญ์
-- CHECK ์ ์ฝ์กฐ๊ฑด ์ญ์
ALTER TABLE employees
DROP CONSTRAINT check_age;
SQL
๋ณต์ฌ
์ฃผ์: MySQL 8.0.16 ์ด์ ๋ฒ์ ์์๋ CHECK ์ ์ฝ์กฐ๊ฑด์ด ๊ตฌ๋ฌธ์ ์ผ๋ก๋ ํ์ฉ๋์ง๋ง ์ค์ ๋ก๋ ๋ฌด์๋์์ต๋๋ค. 8.0.16 ์ดํ ๋ฒ์ ๋ถํฐ ์ ๋๋ก ์๋ํฉ๋๋ค.