Selain INSERT dan REPLACE: Memahami SQLite UPSERT
Pengurusan pangkalan data yang cekap selalunya memerlukan keupayaan untuk melaksanakan operasi UPSERT—tindakan INSERT dan UPDATE gabungan. SQLite menyediakan fungsi ini melalui klausa ON CONFLICT
nya, menawarkan kaedah yang mantap untuk mengendalikan konflik yang berpotensi apabila memasukkan atau mengemas kini data.
Mari kita ilustrasikan dengan contoh. Bayangkan jadual (table1
) dengan lajur: ID, Blob1 dan Blob2. Untuk mengemas kini Blob1 dan Blob2 untuk ID tertentu atau memasukkan baris baharu jika ID itu tidak wujud, gunakan sintaks SQLite ini:
<code class="language-sql">INSERT INTO table1 (ID, Blob1, Blob2) VALUES (1, 'New Blob1', 'New Blob2') ON CONFLICT (ID) DO UPDATE SET Blob1 = 'New Blob1', Blob2 = 'New Blob2';</code>
Pernyataan ini menangani konflik dengan elegan. Jika ID 1 sudah wujud, nilai Blob1
dan Blob2
dikemas kini. Jika rekod tiada, baris baharu dibuat menggunakan nilai yang disediakan. Harap maklum bahawa mana-mana lajur lain akan mengekalkan nilai lalainya.
Adalah penting untuk diingat bahawa sokongan UPSERT berbeza-beza merentas pangkalan data SQL. Walau bagaimanapun, dalam SQLite, klausa ON CONFLICT
menyediakan penyelesaian yang berkesan dan cekap untuk mengurus sisipan data dan kemas kini, terutamanya dalam senario yang menjangkakan konflik.
Atas ialah kandungan terperinci Bagaimanakah Klausa ON CONFLICT SQLite Mendayakan Operasi UPSERT yang Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!