Rumah > Artikel > pangkalan data > Bagaimanakah Saya Boleh Menghalang Sisipan Rentetan Kosong dalam Jadual MySQL?
Mencegah Penyelitan Rentetan Kosong dalam MySQL dengan Kekangan
Dalam perbincangan sebelum ini, kaedah untuk menghalang pemasukan nilai NULL dalam MySQL telah dibentangkan . Walau bagaimanapun, pengawasan membenarkan rentetan kosong dimasukkan walaupun terdapat kekangan. Artikel ini meneroka cara untuk menangani isu ini menggunakan kekangan pangkalan data, memastikan integriti data pada kedua-dua bahagian pangkalan data dan aplikasi.
Pertimbangkan definisi jadual berikut:
CREATE TABLE IF NOT EXISTS tblFoo ( foo_id int(11) NOT NULL AUTO_INCREMENT, foo_test varchar(50) NOT NULL, PRIMARY KEY (foo_id) );
Takrifan ini, walaupun menguatkuasakan NOT NULL kekangan pada lajur foo_test, masih membenarkan sisipan kosong rentetan:
INSERT INTO tblFoo (foo_test) VALUES ('');
Untuk mengelakkan ini, seseorang boleh menggunakan kekangan CHECK. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa sebelum MySQL versi 8.0, kekangan jenis ini tidak disokong. Seperti yang dinyatakan dalam Manual Rujukan MySQL:
The CHECK clause is parsed but ignored by all storage engines.
Untuk versi MySQL yang lebih lama, penyelesaiannya adalah dengan menggunakan pencetus seperti yang dicadangkan. Walau bagaimanapun, untuk perkembangan masa hadapan, mungkin berfaedah untuk mempertimbangkan pangkalan data dengan sokongan yang dipertingkatkan untuk integriti data, seperti PostgreSQL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Sisipan Rentetan Kosong dalam Jadual MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!