Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencontohi KEMASKINI KUNCI PENDUPLICATE MySQL dengan Cekap dalam SQLite?
Mensimulasikan MySQL ON DUPLICATE KEY UPDATE dalam SQLite
SQLite tidak mempunyai persamaan langsung klausa ON DUPLICATE KEY UPDATE MySQL, yang membolehkan kemas kini yang cekap dan sisipan rekod dengan kekangan unik yang telah ditetapkan. Walau bagaimanapun, kesan yang sama boleh dicapai melalui kaedah alternatif.
Kaedah alternatif
Untuk mensimulasikan upsert dalam SQLite, terdapat dua kaedah utama yang boleh anda gunakan:
PILIH (MASUKKAN atau KEMASKINI):
KEMASKINI (MASUKKAN jika KEMASKINI gagal):
Kaedah yang disyorkan
Kedua-dua kaedah mempunyai kebaikan dan keburukan, tetapi kaedah kedua (menggunakan KEMASKINI (atau INSERT jika KEMASKINI gagal)) secara amnya lebih cekap. Ia hanya memerlukan satu operasi pangkalan data dan mengelakkan pertanyaan SELECT yang tidak perlu.
Coretan kod yang dicadangkan
Berikut ialah coretan kod yang dicadangkan untuk melaksanakan pendekatan kedua menggunakan kekangan unik pada lajur "ip":
<code class="language-sql">INSERT OR IGNORE INTO visits VALUES ($ip, 0); UPDATE visits SET hits = hits + 1 WHERE ip LIKE $ip;</code>
Sebagai alternatif, coretan kod berikut daripada penyelesaian Stack Overflow yang lain menyediakan satu lagi pelaksanaan upsert yang berfungsi:
<code class="language-sql">INSERT INTO visits (ip, hits) VALUES ($ip, COALESCE((SELECT hits FROM visits WHERE ip LIKE $ip), 0) + 1);</code>
Atas ialah kandungan terperinci Bagaimana untuk Mencontohi KEMASKINI KUNCI PENDUPLICATE MySQL dengan Cekap dalam SQLite?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!