Rumah > pangkalan data > tutorial mysql > Bagaimanakah saya boleh menghalang sisipan rentetan kosong dalam MySQL?

Bagaimanakah saya boleh menghalang sisipan rentetan kosong dalam MySQL?

Linda Hamilton
Lepaskan: 2024-11-27 02:00:14
asal
495 orang telah melayarinya

How Can I Prevent Empty String Insertions in MySQL?

Mencegah Kemasukan Rentetan Kosong dalam MySQL dengan Kekangan Pangkalan Data

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 <> '')
Salin selepas log masuk

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 = '';
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan