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 ์ถฉ๋ ์ ์
๋ฐ์ดํธ๊ฐ ์ํ๋๋ค.