Sayangnya, hanya menggunakan MySQL ini tidak mungkin. Atau setidaknya, secara praktis. Cara yang lebih disukai adalah menggunakan batasan SQL CHECK, ini dalam standar bahasa SQL. Namun, MySQL tidak mendukungnya.
Lihat:https://dev.mysql.com/doc /refman/5.7/en/create-table.html
Tampaknya PostgreSQL mendukung CHECK constraint pada tabel, tetapi saya tidak yakin seberapa layak bagi Anda untuk mengganti mesin database atau apakah itu sepadan dengan masalahnya hanya dengan menggunakan fitur itu.
Di MySQL, pemicu dapat digunakan untuk mengatasi masalah ini, yang akan memeriksa baris yang tumpang tindih sebelum penyisipan/pembaruan terjadi dan menimbulkan kesalahan menggunakan SIGNAL
penyataan. (Lihat:https://dev.mysql.com/doc/ refman/5.7/en/signal.html
) Namun, untuk menggunakan solusi ini, Anda harus menggunakan versi MySQL terbaru.
Terlepas dari solusi SQL murni, ini biasanya dilakukan dalam logika aplikasi, jadi program mana pun yang mengakses database MySQL biasanya memeriksa batasan semacam ini dengan meminta setiap baris yang dilanggar oleh entri baru di SELECT COUNT(id) ...
penyataan. Jika jumlah yang dikembalikan lebih besar dari 0, itu tidak akan dimasukkan/diperbarui.