REPLACE INTO hoạt động như DELETE + INSERT khi khóa trùng lặp. Tạo bảng:
mysql> CREATE TABLE DemoTable (
Id INT,
FirstName VARCHAR(50)
); Query OK, 0 rows affected (0.60 sec)
Tạo unique index trên Id:
mysql> ALTER TABLE DemoTable ADD UNIQUE id_index(Id); Query OK, 0 rows affected (0.41 sec)
Chèn dữ liệu với REPLACE INTO (Id=100 lặp 2 lần):
mysql> REPLACE INTO DemoTable VALUES(100,'Chris'); Query OK, 1 row affected (0.10 sec) mysql> REPLACE INTO DemoTable VALUES(101,'David'); Query OK, 1 row affected (0.13 sec) mysql> REPLACE INTO DemoTable VALUES(100,'Bob'); Query OK, 2 rows affected (0.16 sec)
Lần thứ 3: Id=100 đã tồn tại → xóa bản ghi cũ, chèn bản ghi mới (Bob). Kết quả 2 rows affected.
Hiển thị dữ liệu:
mysql> SELECT * FROM DemoTable;
Kết quả:
+------+-----------+ | Id | FirstName | +------+-----------+ | 100 | Bob | | 101 | David | +------+-----------+ 2 rows in set (0.00 sec)
Lưu ý: REPLACE INTO yêu cầu PRIMARY KEY hoặc UNIQUE INDEX để xác định trùng lặp.