Si vous devez définir une colonne MySQL pour qu'elle n'accepte pas les valeurs nulles, vous pouvez ajouter la contrainte NOT NULL dans MySQL. Vous pouvez ajouter une contrainte NOT NULL lorsque vous créez une table à l'aide de l'instruction CREATE TABLE ou ajouter une contrainte NOT NULL dans une table existante à l'aide de l'instruction ALTER TABLE. Voici comment ajouter la contrainte NOT NULL dans MySQL.
Comment ajouter une contrainte NOT NULL dans MySQL
Voici les étapes pour ajouter la contrainte NOT NULL pour la colonne dans MySQL, ajouter la contrainte NOT NULL à la colonne existante et supprimer la contrainte NOT NULL d'une colonne.
Voici la syntaxe pour définir la contrainte NOT NULL dans MySQL lorsque vous créez une nouvelle table.
column_name data_type NOT NULL;
Dans la déclaration ci-dessus, vous devez spécifier NOT NULL après avoir mentionné le column_name et son data_type
Voici un exemple pour ajouter la contrainte NOT NULL dans MySQL.
mysql> create table product_sales( id int, amount int NOT NULL, order_date date ); mysql> describe product_sales; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | amount | int(11) | NO | | NULL | | | order_date | date | YES | | NULL | | +------------+---------+------+-----+---------+-------+ mysql> insert into product_sales(id, order_date) values(1,'2020-08-01'); ERROR 1364 (HY000): Field 'amount' doesn't have a default value
Dans la requête CREATE TABLE ci-dessus, nous avons ajouté une contrainte NOT NULL pour amount colonne. Lorsque vous insérez une valeur NULL dans cette colonne, MySQL affichera une erreur.
Lecture bonus :comment ajouter une contrainte par défaut dans MySQL
ALTER TABLE Ajouter une contrainte NOT NULL dans MySQL
Vous pouvez également ajouter une contrainte NOT NULL à une colonne existante dans MySQL à l'aide de l'instruction ALTER TABLE … CHANGE. Voici la syntaxe pour ajouter une contrainte non nulle dans une table existante dans MySQL.
ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;
Dans la requête ci-dessus, nous mentionnons le même nom de colonne pour old_column_name ainsi que new_column_name. Le new_column_name doit être suivi de sa column_definition de type de données et du mot-clé NOT NULL.
Voici un exemple de requête SQL pour ajouter la contrainte NOT NULL à une colonne existante dans MySQL.
mysql> ALTER TABLE product_sales CHANGE order_date order_date DATE NOT NULL; mysql> describe product_sales; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | amount | int(11) | NO | | NULL | | | order_date | date | NO | | NULL | | +------------+---------+------+-----+---------+-------+
Dans la requête ci-dessus, nous avons ajouté la contrainte NOT NULL à la colonne existante order_date
Lecture bonus :MySQL sélectionne les N premières lignes par groupe
Comment supprimer la contrainte NOT NULL
Vous pouvez également supprimer la contrainte NOT NULL à l'aide de l'instruction ALTER TABLE … MODIFY. Voici la syntaxe pour supprimer la contrainte NOT NULL dans MySQL.
ALTER TABLE table_name MODIFY column_name column_definition;
Dans la requête ci-dessus, vous devez spécifier le nom et la définition de la colonne pour laquelle vous souhaitez supprimer la contrainte NOT NULL.
Voici un exemple pour supprimer la contrainte NOT NULL pour order_date colonne.
mysql> ALTER TABLE product_sales MODIFY order_date DATE; mysql> describe product_sales; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | amount | int(11) | NO | | NULL | | | order_date | date | YES | | NULL | | +------------+---------+------+-----+---------+-------+
Lecture bonus :Comment obtenir les données de la semaine dernière dans MySQL
Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !