Saya memiliki query SQL di mana saya ingin memasukkan beberapa baris dalam permintaan tunggal. jadi saya menggunakan sesuatu seperti:
$sql = "INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)";
mysql_query( $sql, $conn );
Masalahnya adalah ketika saya menjalankan query ini, saya ingin memeriksa apakah UNIQUE
kunci (yang bukan PRIMARY KEY
), misalnya di 'name'
atas, harus diperiksa dan jika 'name'
sudah ada, seluruh baris yang sesuai harus diperbarui atau dimasukkan.
Misalnya, dalam contoh di bawah ini, jika 'Katrina'
sudah ada dalam database, seluruh baris, terlepas dari jumlah bidang, harus diperbarui. Sekali lagi jika 'Samia'
tidak ada, baris harus dimasukkan.
Saya berpikir untuk menggunakan:
INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29) ON DUPLICATE KEY UPDATE
Inilah jebakannya. Saya buntu dan bingung bagaimana untuk melanjutkan. Saya memiliki beberapa baris untuk disisipkan / diperbarui pada suatu waktu. Tolong beri saya arahan. Terima kasih.
sumber
INSERT INTO ... ON DUPLICATE KEY UPDATE hanya akan berfungsi untuk MYSQL, bukan untuk SQL Server.
untuk SQL server, cara untuk mengatasi ini adalah dengan pertama-tama mendeklarasikan tabel temp, masukkan nilai ke tabel temp, dan kemudian gunakan MERGE
Seperti ini:
sumber
Anda dapat menggunakan Ganti alih-alih INSERT ... ON DUPLICATE KEY UPDATE.
sumber