Rumah > Artikel > pangkalan data > Bagaimanakah Saya Boleh Menghalang Kemasukan Rentetan Kosong ke dalam Jadual MySQL Tanpa Pemeriksaan Sisi Aplikasi?
Menghalang Kemasukan Rentetan Kosong dalam MySQL dengan Kekangan
Dalam pertanyaan ini, pengguna telah berjaya menghalang pemasukan nilai NULL ke dalam jadual pangkalan data . Walau bagaimanapun, mereka juga mahu menghalang pemasukan rentetan kosong tanpa bergantung semata-mata pada semakan sisi aplikasi.
Untuk mencapai ini menggunakan kekangan pangkalan data, kami boleh menambah kekangan SEMAK pada definisi jadual:
CREATE TABLE IF NOT EXISTS tblFoo ( foo_id int(11) NOT NULL AUTO_INCREMENT, foo_test VARCHAR(50) NOT NULL CHECK (foo_test <> ''), PRIMARY KEY (foo_id) );
Kekangan ini memastikan lajur foo_test tidak boleh mengandungi rentetan kosong. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa dalam versi MySQL sebelum 8.0, kekangan CHECK dihuraikan tetapi diabaikan oleh semua enjin storan. Oleh itu, rentetan kosong masih boleh dimasukkan ke dalam jadual.
Sebagai penyelesaian, pengguna boleh mempertimbangkan untuk menggunakan pencetus untuk menguatkuasakan kekangan:
CREATE TRIGGER trg_tblFoo_prevent_empty_string BEFORE INSERT ON tblFoo FOR EACH ROW BEGIN IF NEW.foo_test = '' THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Empty string not allowed in foo_test column'; END IF; END;
Pencetus ini akan menimbulkan ralat dan menghalang pemasukan rentetan kosong ke dalam lajur foo_test.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Kemasukan Rentetan Kosong ke dalam Jadual MySQL Tanpa Pemeriksaan Sisi Aplikasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!