[PostgreSQL] Unique์ NULL
Unique ์ ์ผ์ฑ ์ ์ฝ๊ณผ null์ ์์ธ์ฌํญ์ ๋ํด์ ๊ฐ๋ตํ ์ ๋ฆฌํด๋ณธ๋ค.
๋ค์๊ณผ ๊ฐ์ด ๋ ์ ์ฝ์ด ์๋ ํ ์ด๋ธ์ ๋ง๋ค๊ณ

์ฌ๊ธฐ์ ๋ํด์ unique ์ธ๋ฑ์ค๋ฅผ ๋ฌ์๋ดค๋ค.

์ผ๋ฐ์ ์ผ๋ก ์๊ฐํ๋ค๋ฉด ์ด๋ฐ ์ํฉ์์
('๊น๋ฐฅ', null) ์์ ๋ฐ์ดํฐ๊ฐ 2๋ฒ ๋ค์ด์จ๋ค๋ฉด ์ ์ผ์ฑ ์ ์ฝ์ ๊ฑธ๋ฆด ๊ฑฐ๋ผ๊ณ ์๊ฐํ ์ ์๋ค.
ํ์ง๋ง null์ ์ ์ผ์ฑ ๊ฒ์ฌ๋์์ ์ํ์ง ์์์, ๊ฐ์ ๊ฐ์ด ์ผ๋ง๋ ์ง ์ค๋ณต์ด ๋ ์๊ฐ ์๋ค.
์ด๊ฑด postgresql๋ฟ๋ง ์๋๋ผ ๋๋ค์์ SQL์ด ๊ณต์ ํ๋ ์ฒด๊ณ๋ค.
๋๋ฌธ์ unique๋ฅผ ๋ฌ ๊ฒฝ์ฐ์๋ ํด๋น ์ปฌ๋ผ๋ค์ ๋ค NOT NULL ์ ์ฝ์ ๋ฌ์์ฃผ๋ ๊ฒ์ด ์ข๋ค.
๊ผผ์
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋ ผ๋ฆฌ์ ์ผ๋ก null์ ํฌํจ์์ผ์ ์ ์ผ์ฑ์ ์ฒ๋ฆฌํ๊ณ ์ถ์ ๋๊ฐ ์์ ์ ์๋ค.
๊ทธ๋ด ๋๋ ๋ค์๊ณผ ๊ฐ์ด null์ธ ์ปฌ๋ผ์ is null์ ๋ฌ์์ฃผ๊ณ , where์๋ ๋ฌ์์ฃผ๋ฉด ๋๋ค.

๊ทธ๋ผ ์ ๋ ๊ฒ์ด๋ค.

๊ทธ๋ฆฌ๊ณ ์ ๋ ๊ฒ ํด๋๋ค๋ฉด on conflict์ ์ ์ฌ์ฉํ ๋๋ ๋์ผํ๊ฒ ๋ง์ถฐ์ค์ผ ํ๋ค.
