REPLACE INTO secara semantik merupakan operasi gabungan DELETE + INSERT: pernyataan ini menimpa baris yang sudah ada jika kunci primernya cocok, atau menyisipkan baris baru jika tidak ditemukan kecocokan.
Sintaksis
REPLACE INTO table_name [(column_name,...)] VALUES ({Constant|NULL|DEFAULT},...),(...),...Parameter
| Parameter | Description |
|---|---|
table_name | Tabel target. |
column_name | (Opsional) Kolom yang akan diisi. Abaikan untuk memasukkan nilai ke semua kolom sesuai urutan yang telah ditentukan. |
Constant|NULL|DEFAULT | Nilai untuk setiap kolom: berupa konstanta literal, NULL, atau nilai DEFAULT kolom tersebut. |
Catatan
Kunci primer dapat berupa kunci primer satu kolom atau kunci primer komposit yang mencakup beberapa kolom.
Cara kerja
Saat Anda menjalankan REPLACE INTO, sistem memeriksa apakah sudah ada baris dengan kunci primer yang sama:
Baris sudah ada — sistem menghapus baris tersebut dan menyisipkan baris baru.
Baris belum ada — sistem langsung menyisipkan baris tersebut.
Contoh
Sisipkan satu baris dengan nama kolom
REPLACE INTO customer(customer_id,customer_name,phone_num,city_name,sex,id_number,home_address,office_address,age,login_time)
VALUES
(002367,'Bob','13900001234','Hangzhou',0,'987300','WestLake','CloudTown',23,'2018-03-02 10:00:00');Sisipkan multiple baris tanpa nama kolom
Abaikan daftar kolom jika Anda memberikan nilai untuk setiap kolom sesuai urutan yang telah ditentukan.
REPLACE INTO customer VALUES
(002367,'John','13900001111','Hangzhou',0,'987300','WestLake','CloudTown',23,'2018-03-02 10:00:00'),
(002368,'Adam','13900002222','Hangzhou',0,'987300','WestLake','CloudTown',28,'2018-08-01 11:00:00'),
(002369,'Brook','13900003333','Hangzhou',1,'987300','WestLake','CloudTown',35,'2018-09-12 08:11:00');