Walaupun semakan sisi pelayan sering digunakan untuk menghalang pemasukan nilai nol, ia mungkin tidak mencukupi untuk mengelakkan rentetan kosong daripada dimasukkan. Untuk menangani ini, kekangan pangkalan data boleh digunakan.
MySQL membenarkan takrifan kekangan untuk menyekat data yang boleh dimasukkan ke dalam jadual. Satu kekangan sedemikian ialah kekangan CHECK, yang membolehkan anda menentukan syarat yang mesti dipenuhi oleh data yang dimasukkan.
Sebagai contoh, untuk mengelakkan pemasukan rentetan kosong ('') ke dalam lajur bernama foo_test , anda boleh menggunakan kekangan CHECK berikut:
foo_test VARCHAR(50) NOT NULL CHECK (foo_test <> '')
Kekangan ini menyemak bahawa nilai foo_test tidak sama kepada rentetan kosong, secara berkesan tidak membenarkan sisipannya.
Walau bagaimanapun, sebelum MySQL versi 8.0, klausa CHECK secara amnya diabaikan oleh enjin storan. Sebagai penyelesaian, anda boleh mencipta pencetus yang menyemak rentetan kosong sebelum memasukkan:
CREATE TRIGGER before_insert_tblFoo BEFORE INSERT ON tblFoo FOR EACH ROW SET foo_test = NULL -- Replace empty string with NULL (or another default value) WHERE NEW.foo_test = '';
Pencetus ini memastikan sebarang percubaan untuk memasukkan rentetan kosong akan digantikan dengan NULL atau nilai yang lebih sesuai.
Perlu diingat bahawa PostgreSQL menawarkan sokongan yang teguh untuk integriti data, termasuk kekangan CHECK. Jika anda memerlukan fungsi kekangan yang lebih maju, PostreSQL mungkin pilihan yang sesuai.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menghalang sisipan rentetan kosong dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!