Maison > base de données > tutoriel mysql > Comment puis-je empêcher les insertions de chaînes vides dans les tables MySQL ?

Comment puis-je empêcher les insertions de chaînes vides dans les tables MySQL ?

Patricia Arquette
Libérer: 2024-11-19 05:50:02
original
319 Les gens l'ont consulté

How Can I Prevent Empty String Inserts in MySQL Tables?

Empêcher l'insertion de chaînes vides dans MySQL avec des contraintes

Dans des discussions précédentes, une méthode pour empêcher l'insertion de valeurs NULL dans MySQL a été présentée . Cependant, un oubli a permis d'insérer des chaînes vides malgré la contrainte. Cet article explore les moyens de résoudre ce problème à l'aide de contraintes de base de données, garantissant l'intégrité des données à la fois du côté de la base de données et de l'application.

Considérez la définition de table suivante :

CREATE TABLE IF NOT EXISTS tblFoo (
  foo_id int(11) NOT NULL AUTO_INCREMENT,
  foo_test varchar(50) NOT NULL,
  PRIMARY KEY (foo_id)
);
Copier après la connexion

Cette définition, malgré l'application des Contrainte NOT NULL sur la colonne foo_test, permet toujours l'insertion de chaînes vides :

INSERT INTO tblFoo (foo_test) VALUES ('');
Copier après la connexion

Pour éviter cela, on peut utiliser un CHECK contrainte. Cependant, il est important de noter qu'avant la version 8.0 de MySQL, ce type de contrainte n'était pas supporté. Comme indiqué dans le manuel de référence MySQL :

The CHECK clause is parsed but ignored by all storage engines.
Copier après la connexion

Pour les anciennes versions de MySQL, une solution de contournement consiste à utiliser les déclencheurs comme suggéré. Cependant, pour les développements futurs, il peut être avantageux d'envisager des bases de données offrant un support amélioré pour l'intégrité des données, comme PostgreSQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal