Dalam kasus ini jika kita menggunakan ORACLE, kita dapat menggunakan perintah SQL 'MERGE'. Dengan perintah MERGE kita tidak perlu mengecek data yang ada apakah akan di-insert atau di-update karena data sudah ada.
Dibawah ini contoh query untuk update atau insert ke database yang diimplementasikan pada class PreparedStatement:
MERGE INTO app_user dest
USING (SELECT ? AS userid, ? AS first_name FROM dual) src
ON (dest.userid = src.userid)
WHEN MATCHED THEN
UPDATE SET dest.first_name = src.first_name
WHEN NOT MATCHED THEN
INSERT (dest.userid, dest.first_name)
VALUES (src.userid, src.first_name)
Pada query diatas akan dilihat apakah dalam tabel app_user sudah ada userid yang dimasukan dalam variabel pertama (tanda tanya pertama), jika ada maka field first_name akan di-update dengan variabel kedua (tanda tanya kedua) tapi jika tidak ada maka varibel pertama dan varibel kedua akan di-insert pada tabel.
No comments:
Post a Comment