Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah Saya Boleh Menghalang Sisipan Rentetan Kosong dalam Jadual MySQL?

Bagaimanakah Saya Boleh Menghalang Sisipan Rentetan Kosong dalam Jadual MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-11-19 05:50:02257semak imbas

How Can I Prevent Empty String Inserts in MySQL Tables?

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!

Kenyataan:
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