[PostgreSQL] DDL: IF NOT EXISTS ์ ˆ

DB๋ฅผ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‹ค์ œ ์ž‘์—…์„ ํ•˜๋‹ค๋ณด๋ฉด, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์šฉ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด์„œ ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ DDL์„ ๋‚ ๋ฆด ๊ฒฝ์šฐ๊ฐ€ ๋งค์šฐ ๋งŽ๋‹ค.

๊ทผ๋ฐ ์ด๊ฒŒ ์ด๋ž˜์ €๋ž˜ ์น˜๋‹ค๋ณด๋ฉด ๋ถ€๋ถ„์ ์œผ๋กœ๋Š” ์ด๋ฏธ ์ ์šฉ๋˜์–ด์žˆ์–ด์„œ ์ด๋ฏธ ์žˆ๋Š”๊ฑธ ๋˜ ๋งŒ๋“œ๋ ค๊ณ  ์‹œ๋„ํ•˜๋‹ค ์—๋Ÿฌ๊ฐ€ ๋‚˜์„œ ์ƒ๋‹นํžˆ ๊ท€์ฐฎ์€ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๊ฐ€ ์žฆ๋‹ค.
IF NOT EXISTS ์ ˆ์€ ์ด๋Ÿฐ ์ƒํ™ฉ์— ํ™œ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•œ DDL ์ „์šฉ ์กฐ๊ฑด์ ˆ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๋ฏธ ์žˆ๋Š” ํ…Œ์ด๋ธ”์„ ๋˜ ๋งŒ๋“ค๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉด

CREATE TABLE FooBar (
  id serial8 PRIMARY KEY,
  name TEXT
);

์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ์ดํ›„์˜ ์ฟผ๋ฆฌ๋“ค์ด ๋‹ค ๋Š๊ธด๋‹ค.

ํ•˜์ง€๋งŒ IF NOT EXISTS ์ ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ด๋„ ๋ฌด์‹œํ•˜๊ณ  ์ง€๋‚˜๊ฐ„๋‹ค.

CREATE TABLE IF NOT EXISTS FooBar (
  id serial8 PRIMARY KEY,
  name TEXT
);

์ด๊ฑด ์ปฌ๋Ÿผ ์ถ”๊ฐ€๋‚˜

ALTER TABLE FooBar ADD COLUMN name TEXT;

ALTER TABLE FooBar ADD COLUMN IF NOT EXISTS name TEXT;

์ธ๋ฑ์Šค ์ƒ์„ฑ ๋“ฑ์—๋„ ๋™์ผํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.




์ถ”๊ฐ€: IF EXISTS ์ ˆ

IF NOT EXISTS๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ์กฐ๊ฑด์ ˆ์ด๋ผ๋ฉด, IF EXISTS๋Š” ์กด์žฌํ•  ๋•Œ๋งŒ ์‹คํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ์กฐ๊ฑด์ ˆ์ด๋‹ค.
DROP ๊ฐ™์€ ์ œ๊ฑฐ ๋ช…๋ น์— ์‚ฌ์šฉํ•˜๊ธฐ์— ์šฉ์ดํ•˜๋‹ค.