Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Kiểm tra tồn tại và ghi đè cột khác với INSERT ON DUPLICATE KEY UPDATE MySQL

Cú pháp INSERT ... ON DUPLICATE KEY UPDATE cot = gia_tri_moi cho phép "upsert": chèn mới nếu khóa chính/unique chưa tồn tại, cập nhật nếu đã tồn tại.

Ví dụ minh họa

Tạo bảng Unique Key trên FirstName:

mysql> CREATE TABLE DemoTable1891 (FirstName VARCHAR(20), UNIQUE KEY(FirstName));

Chèn 'Chris' (mới) -> INSERT. Chèn 'David' (mới) -> INSERT. Chèn lại 'Chris' (trùng) -> UPDATE FirstName='Robert':

mysql> INSERT INTO DemoTable1891 VALUES('Chris') ON DUPLICATE KEY UPDATE FirstName='Robert';
mysql> INSERT INTO DemoTable1891 VALUES('David') ON DUPLICATE KEY UPDATE FirstName='Robert';
mysql> INSERT INTO DemoTable1891 VALUES('Chris') ON DUPLICATE KEY UPDATE FirstName='Robert';

Kết quả (Chris bị đổi thành Robert):

+-----------+
| FirstName |
+-----------+
| David     |
| Robert    |
+-----------+

Lưu ý: Cần có PRIMARY KEY hoặc UNIQUE KEY để trigger duplicate. VALUES(cot) trong UPDATE tham chiếu giá trị chèn ban đầu.