Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment ajouter une contrainte par défaut dans MySQL

Parfois, vous devrez peut-être ajouter une valeur par défaut à une colonne ou ajouter une colonne avec une valeur par défaut dans MySQL. Vous pouvez facilement le faire en utilisant la contrainte par défaut dans MySQL. Voici comment ajouter une contrainte par défaut dans MySQL.

Comment ajouter une contrainte par défaut dans MySQL

Voici les étapes pour ajouter une contrainte par défaut dans MySQL. Vous pouvez ajouter une contrainte par défaut lors de la création de la table à l'aide de l'instruction CREATE TABLE ou après la création de la table à l'aide de l'instruction ALTER TABLE. Nous examinerons ces deux approches.

Comment ajouter une contrainte par défaut à l'aide de CREATE TABLE

Voici la syntaxe pour ajouter une contrainte par défaut à l'aide de l'instruction de table CREATE.

mysql> create table table_name(
    column1 column1_definition DEFAULT default_value,
    column2 column2_definition,
    ...
  );

Dans la requête SQL ci-dessus, vous devez spécifier le nom de la table table_name . De plus, vous devez mentionner DEFAULT après la définition de colonne du champ pour lequel vous souhaitez ajouter une valeur par défaut. Vous devez également spécifier la valeur par défaut de votre colonne.

Lecture bonus :MySQL sélectionne les N premières lignes par groupe

Voici un exemple pour ajouter une contrainte par défaut dans MySQL.

mysql> create table sample_data(
       id int,
       order_date date,
       amount int DEFAULT 0
     );

mysql> insert into sample_data(id, order_date)
       values(1,'2020-08-01');

mysql> select * from sample_data;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-08-01 |      0 |
+------+------------+--------+

Dans la requête SQL ci-dessus, nous créons sample_data table avec la valeur DEFAULT 0 pour la colonne montant. Comme vous pouvez le voir, lorsque nous insérons des valeurs dans sample_data , nous ne mentionnons pas la valeur de amount colonne. Pourtant, MySQL attribue automatiquement la valeur par défaut 0 à cette colonne.

Lecture bonus :comment obtenir les données de la semaine dernière dans MySQL

ALTER TABLE ajoute une colonne avec la valeur par défaut dans MySQL

De même, vous pouvez ajouter une contrainte par défaut à l'aide de l'instruction ALTER TABLE pour les tables existantes. Voici la syntaxe pour cela

mysql> ALTER TABLE table_name
          ALTER column_name SET DEFAULT default_value;

Dans l'instruction ALTER TABLE ci-dessus, vous devez mentionner table_name, column_name et default_value

Voici un exemple pour ajouter une contrainte par défaut à l'aide de ALTER TABLE. Supposons que vous souhaitiez définir une valeur par défaut pour order_date colonne dans le tableau ci-dessus sample_data

mysql> ALTER TABLE sample_data
       ALTER order_date SET DEFAULT '2020-08-03';

mysql> insert into sample_data(id)
       values(2);

mysql>select * from sample_data;

mysql> select * from sample_data;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-08-01 |      0 |
|    2 | 2020-08-03 |      0 |
+------+------------+--------+

Dans la requête SQL ci-dessus, nous avons ajouté une contrainte par défaut à order_date colonne. Après cela, nous fournissons uniquement id la valeur de la colonne dans notre instruction INSERT. Pourtant, MySQL remplit automatiquement order_date et montant colonnes en fonction de leurs valeurs par défaut.

Lecture bonus :copie de la base de données MySQL

Comment supprimer la valeur par défaut de la colonne

Si vous devez supprimer la valeur par défaut de la colonne, utilisez l'instruction DROP DEFAULT. Voici la syntaxe de la requête DROP DEFAULT.

mysql> ALTER TABLE table_name
          ALTER column_name DROP DEFAULT;

Dans la requête ci-dessus, vous devez spécifier le table_name et nom_colonne pour lequel vous souhaitez supprimer la contrainte DEFAULT.

Voici un exemple de contrainte DROP DEFAULT en SQL.

mysql> ALTER TABLE sample_data
       ALTER order_date DROP DEFAULT;

Dans la déclaration ci-dessus, nous avons supprimé la contrainte par défaut de order_date colonne.

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 !