UPSERT (INSERT বা UPDATE) সিনট্যাক্স
যদি ইউনিক কী বা প্রাইমারি কী কনফ্লিক্ট হয়, তবে ইনসার্টের বদলে আপডেট করতে ON DUPLICATE KEY UPDATE ব্যবহার করুন।
সিনট্যাক্স
INSERT INTO table (col1, col2...) VALUES (val1, val2...) ON DUPLICATE KEY UPDATE col1=val1, col2=val2...;
উদাহরণ
mysql> CREATE TABLE DemoTable1539 (
-> EmployeeName VARCHAR(20), EmployeeSalary INT,
-> UNIQUE KEY(EmployeeName)
-> );
mysql> INSERT INTO DemoTable1539 VALUES ('Chris',4500) ON DUPLICATE KEY UPDATE EmployeeName='Robert', EmployeeSalary=8500;
mysql> INSERT INTO DemoTable1539 VALUES ('David',5500) ON DUPLICATE KEY UPDATE EmployeeName='Robert', EmployeeSalary=8500;
mysql> INSERT INTO DemoTable1539 VALUES ('Chris',4500) ON DUPLICATE KEY UPDATE EmployeeName='Robert', EmployeeSalary=8500;
ফলাফল (৩রা ইনসার্টে Chris=dulicate, তাই Update হয়েছে)
+--------------+----------------+ | EmployeeName | EmployeeSalary | +--------------+----------------+ | Robert | 8500 | | David | 5500 | +--------------+----------------+
নোট: ROW_COUNT() ১ হলে ইনসার্ট, ২ হলে আপডেট। VALUES() ফাংশন দিয়ে ইনসার্ট-এ দেওয়া মান রি-ইউজ করা যায় (যেমন VALUES(EmployeeSalary))।