Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mensimulasikan SQL Server JIKA TIDAK WUJUD dalam SQLite untuk Sisipan Bersyarat?

Bagaimana untuk Mensimulasikan SQL Server JIKA TIDAK WUJUD dalam SQLite untuk Sisipan Bersyarat?

Susan Sarandon
Lepaskan: 2024-12-15 18:26:11
asal
616 orang telah melayarinya

How to Simulate SQL Server's IF NOT EXISTS in SQLite for Conditional Inserts?

Memasukkan Rekod dalam SQLite Apabila Ia Tidak Wujud: Meneroka JIKA TIDAK WUJUD

Dalam MS SQL Server, klausa IF NOT EXISTS ialah digunakan untuk memasukkan rekod secara bersyarat ke dalam jadual. Sebagai contoh, coretan kod berikut mencipta rekod baharu dalam jadual EVENTTYPE jika ia belum wujud:

IF NOT EXISTS(SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received') 
    INSERT INTO EVENTTYPE (EventTypeName) VALUES ('ANI Received');
Salin selepas log masuk

Walau bagaimanapun, SQLite tidak menyokong klausa IF NOT EXISTS secara asli. Akibatnya, pembangun yang ingin memindahkan fungsi ini ke SQLite mungkin menghadapi cabaran.

Penyelesaian SQLite untuk Sisipan Bersyarat

Walaupun tiada sokongan langsung JIKA TIDAK WUJUD, terdapat adalah beberapa penyelesaian yang tersedia dalam SQLite. Satu pendekatan biasa ialah menggunakan pernyataan INSERT OR IGNORE:

INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES 'ANI Received'
Salin selepas log masuk

Pernyataan ini cuba memasukkan rekod ke dalam jadual EVENTTYPE, tetapi ia tidak menimbulkan ralat jika rekod sudah wujud.

Sebagai alternatif, anda boleh menggunakan gabungan pernyataan SELECT dan INSERT, seperti yang dilihat di bawah:

INSERT INTO EVENTTYPE (EventTypeName)
SELECT 'ANI Received'
WHERE NOT EXISTS (SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received');
Salin selepas log masuk

Kod ini mula-mula menyemak sama ada rekod sudah wujud menggunakan pernyataan SELECT. Jika ia tidak wujud, pernyataan INSERT dilaksanakan untuk menambah rekod baharu.

Atas ialah kandungan terperinci Bagaimana untuk Mensimulasikan SQL Server JIKA TIDAK WUJUD dalam SQLite untuk Sisipan Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan