REPLACE SELECT FROM menyalin catatan dari satu tabel (atau Tampilan) ke tabel lain secara real time. Untuk setiap catatan, sistem memeriksa apakah primary key-nya sudah ada di tabel target. Jika ya, catatan yang ada akan dihapus dan catatan baru dimasukkan; jika tidak, catatan tersebut langsung dimasukkan.
Cara kerja
Untuk setiap catatan yang disalin, AnalyticDB for MySQL menjalankan langkah-langkah berikut:
Mencoba memasukkan catatan ke dalam tabel target.
Jika terjadi konflik primary key, menghapus catatan yang bentrok.
Memasukkan catatan baru.
Kapan menggunakan REPLACE SELECT FROM
Gunakan REPLACE SELECT FROM ketika Anda perlu menimpa catatan yang sudah ada berdasarkan kecocokan primary key—misalnya, untuk memperbarui tabel ringkasan dengan data sumber terbaru.
Sintaksis
REPLACE INTO table_name
[(column_name, ...)]
query;Parameter
| Parameter | Deskripsi |
|---|---|
table_name | Nama tabel target. Tabel tersebut harus sudah ada sebelum Anda menjalankan pernyataan ini. |
column_name | (Opsional) Kolom-kolom yang akan diisi data. Jika ditentukan, kolom dalam klausa SELECT harus sesuai dengan kolom yang tercantum dalam urutan yang sama dan memiliki tipe data yang kompatibel. |
query | Pernyataan SELECT FROM TABLE atau SELECT FROM VIEW yang menentukan catatan yang akan disalin. |
Prasyarat
Tabel target sudah ada.
Contoh
Salin tiga kolom dari tabel customer ke tabel new_customer, menimpa catatan yang sudah ada jika primary key-nya cocok.
REPLACE INTO new_customer (customer_id, customer_name, phone_num)
SELECT customer_id, customer_name, phone_num FROM customer
WHERE customer.customer_name = 'Alan';