ON DUPLICATE KEY UPDATE
์์ ํค๊ฐ email
์ธ์ง ์ด๋ป๊ฒ ์ ์ ์์๊น?**ON DUPLICATE KEY UPDATE
๋ "๊ณ ์ (UNIQUE) ํค๋ ๊ธฐ๋ณธ ํค(PRIMARY KEY) ์ถฉ๋ ์ ์ํํ ๋์"์ ์ ์ํ๋ MySQL/MariaDB์ SQL ๊ตฌ๋ฌธ์ด๋ค.
ํด๋น ํค๊ฐ ์ถฉ๋ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉ๋๋ ์ด์ ๋ ํ ์ด๋ธ ์คํค๋ง์ ์๋ค.
์๋์ ๊ฐ๋จํ user ํ ์ด๋ธ์ ์ฐธ๊ณ ํด๋ณด์.
CREATE TABLE user (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(100) UNIQUE,
name VARCHAR(50) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
id
)email
)email
ํ๋๊ฐ UNIQUE
๋ก ์ค์ ๋์ด ์๋ค.ON DUPLICATE KEY UPDATE
์ ์๋ ๋ฐฉ์ON DUPLICATE KEY UPDATE
๋ PRIMARY KEY๋ UNIQUE KEY๊ฐ ์ถฉ๋ํ ๋ ์คํ๋๋ค.id
๋ email
์ด ๊ธฐ์กด ๋ฐ์ดํฐ์ ์ถฉ๋ํ ๊ฒฝ์ฐ, UPDATE
์ ์ด ์คํ๋๋ค.email
์ด UNIQUE๋ก ์ค์ ๋์ด ์์ผ๋ฏ๋ก:INSERT
๋ฅผ ์๋ํ ๋ email
๊ฐ์ด ์ด๋ฏธ ์กด์ฌํ๋ค๋ฉด ON DUPLICATE KEY UPDATE
์ ์ด ์คํ๋๋ค.email
ํ๋๊ฐ UNIQUE
์ ์ฝ ์กฐ๊ฑด์ ๊ฐ์ง๊ณ ์๋ค.ON DUPLICATE KEY UPDATE
๋ PRIMARY KEY
๋๋ UNIQUE KEY
์ค ์ถฉ๋์ด ๋ฐ์ํ ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ํ๋ค.email
์ด UNIQUE
์ ์ฝ ์กฐ๊ฑด์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ email
์ถฉ๋ ์ ์
๋ฐ์ดํธ๊ฐ ์ํ๋๋ค.