Rumah > Artikel > pangkalan data > Bagaimanakah Anda Boleh Melaksanakan Sisipan Bersyarat dalam MySQL untuk Peruntukan Sumber Selamat?
Memasukkan data ke dalam jadual MySQL biasanya mudah. Walau bagaimanapun, dalam senario tertentu, anda mungkin mahu melakukan sisipan bersyarat berdasarkan kriteria tertentu. Walaupun prosedur tersimpan boleh mengendalikan tugas sedemikian, ia boleh menjadi mudah untuk melakukannya secara terus dalam pertanyaan anda.
Persoalan biasa timbul apabila berurusan dengan peruntukan sumber. Pertimbangkan senario di mana anda mempunyai dua jadual: produk dan pesanan. Pesanan menjejaki produk dan kuantitinya, manakala produk mengekalkan kuantiti di tangan. Apabila pesanan dibuat, anda ingin memasukkan baris pesanan baharu hanya jika terdapat inventori yang mencukupi.
Secara tradisinya, anda akan menyemak kuantiti yang tersedia menggunakan penyata SELECT dan kemudian memasukkan pesanan jika syarat dipenuhi. Walau bagaimanapun, pendekatan ini mempunyai isu konkurensi. Berbilang pesanan serentak boleh membaca kuantiti yang sama di tangan sebelum diproses, yang berpotensi menyebabkan penjualan berlebihan.
Untuk menangani perkara ini, anda boleh menggunakan pernyataan INSERT bersyarat:
INSERT INTO TABLE SELECT value_for_column1, value_for_column2, ... FROM wherever WHERE your_special_condition
Dalam pernyataan ini , INSERT hanya dilakukan jika klausa WHERE bernilai benar. Menggunakan skema contoh, anda boleh menulis INSERT bersyarat seperti berikut:
INSERT INTO orders (product_id, qty) SELECT 2, 20 WHERE (SELECT qty_on_hand FROM products WHERE id = 2) > 20;
Pernyataan ini hanya akan memasukkan baris pesanan jika kuantiti di tangan untuk produk 2 lebih besar daripada 20. Jika tidak, tiada baris yang dimasukkan , mencegah penjualan berlebihan.
Pendekatan ini menggabungkan kefungsian pernyataan SELECT dengan pernyataan INSERT, dengan berkesan mewujudkan sisipan bersyarat yang mengekalkan integriti data walaupun dalam senario serentak.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Melaksanakan Sisipan Bersyarat dalam MySQL untuk Peruntukan Sumber Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!