Rumah >pangkalan data >tutorial mysql >Berikut adalah beberapa tajuk, menggabungkan soalan dan memberi tumpuan kepada masalah teras: * Bagaimana untuk Memasukkan Julat Tarikh ke dalam MySQL Tanpa Pertindihan? * Sisipan Julat Tarikh MySQL: Mengelakkan Pertindihan - Penyelesaian a
Masalah:
Diberikan jadual dengan ketersediaan julat tarikh (avail), tugasnya adalah untuk memasukkan julat tarikh baharu ke dalam jadual hanya jika ia tidak bertindih dengan mana-mana julat tarikh sedia ada untuk ID akaun (acc_id) yang diberikan.
Cadangan Penyelesaian Menggunakan Penyata Sisipan Tunggal:
Walaupun mungkin menarik untuk mencapai ini dalam satu penyata sisipan, malangnya, ia tidak boleh dilakukan secara langsung dalam MySQL sahaja.
Alternatif Pendekatan:
Kekangan SQL CHECK (Tidak Disokong dalam MySQL):
SQL CHECK kekangan adalah kaedah pilihan untuk menguatkuasakan pertindihan sedemikian pengesahan. Walau bagaimanapun, MySQL tidak menyokong kekangan CHECK.
Kekangan CHECK PostgreSQL:
PostgreSQL menyokong kekangan CHECK pada jadual. Jika bertukar kepada PostgreSQL ialah pilihan yang berdaya maju, pendekatan ini boleh dipertimbangkan.
Pencetus MySQL:
Pencetus MySQL boleh digunakan untuk menyemak bertindih sebelum operasi memasukkan atau mengemas kini. Walau bagaimanapun, ini memerlukan versi MySQL yang terkini.
Logik Aplikasi:
Lazimnya, pengesahan bertindih dilakukan dalam logik aplikasi. Penyata SELECT COUNT(id) ... boleh digunakan untuk menyemak baris yang melanggar entri baharu. Jika kiraan lebih besar daripada 0, sisipan atau kemas kini akan digugurkan.
Pertimbangan Tambahan:
Kesimpulan:
Walaupun satu penyata sisipan mungkin tidak boleh dilaksanakan dalam MySQL, pendekatan alternatif seperti kekangan PostgreSQL CHECK, pencetus MySQL atau logik aplikasi boleh memberikan pengesahan pertindihan yang boleh dipercayai.
Atas ialah kandungan terperinci Berikut adalah beberapa tajuk, menggabungkan soalan dan memberi tumpuan kepada masalah teras: * Bagaimana untuk Memasukkan Julat Tarikh ke dalam MySQL Tanpa Pertindihan? * Sisipan Julat Tarikh MySQL: Mengelakkan Pertindihan - Penyelesaian a. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!