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

Comment créer une séquence dans MySQL

Parfois, vous devrez peut-être générer une séquence dans MySQL. Étant donné que MySQL n'a pas de fonction intégrée pour créer une séquence, vous devez la générer via une requête SQL. Voici comment créer une séquence dans MySQL à l'aide de la requête de séquence MySQL.

Comment créer une séquence dans MySQL

Voici les étapes pour créer une séquence dans MySQL. Il existe différentes manières de générer une séquence dans MySQL.

Créer une séquence avec AUTO_INCREMENT

Vous pouvez simplement stocker votre séquence MySQL dans une colonne en utilisant l'attribut AUTO_INCREMENT lors de la création de la table. Supposons que vous souhaitiez créer une table commandes (id, date_commande, montant) et stocker la séquence dans id colonne.

mysql> create table orders(id int AUTO_INCREMENT PRIMARY KEY, 
        order_date date, amount int);

mysql> insert into orders(order_date,  amount)
      values('2020-08-01', 250),
       ('2020-08-02',125),
       ('2020-08-03',300);

mysql> select * from orders;
+----+------------+--------+
| id | order_date | amount |
+----+------------+--------+
|  1 | 2020-08-01 |    250 |
|  2 | 2020-08-02 |    125 |
|  3 | 2020-08-03 |    300 |
+----+------------+--------+

Dans le tableau ci-dessus, nous définissons id comme clé primaire et incluez l'option AUTO_INCREMENT pour incrémenter et stocker automatiquement les valeurs de clé primaire.

Veuillez noter que MySQL vous permet d'avoir une seule colonne AUTO_INCREMENT par table et cela aussi, comme clé primaire.

Dans la requête INSERT ci-dessus, nous fournissons uniquement des valeurs pour order_date et montant colonnes mais pas id colonne mais MySQL génère automatiquement une séquence pour celle-ci.

Lecture bonus :Comment comparer deux tables dans MySQL

Créer une séquence sans utiliser AUTO_INCREMENT

Supposons que vous souhaitiez créer une autre colonne de séquence sans utiliser AUTO_INCREMENT. Dans ce cas, vous devrez utiliser l'instruction UPDATE pour calculer mathématiquement et remplir cette colonne de séquence.

Par exemple, ajoutons une séquence colonne vers le tableau ci-dessus pour stocker une nouvelle séquence.

mysql> alter table orders 
add column sequence int;

Lecture bonus :comment copier une table dans MySQL

Ensuite, nous utilisons l'instruction UPDATE pour créer une séquence dans MySQL. Nous allons créer une séquence deux fois id valeur de la colonne

mysql> update orders
       set sequence=2*id;

mysql> select * from orders;
+----+------------+--------+----------+
| id | order_date | amount | sequence |
+----+------------+--------+----------+
|  1 | 2020-08-01 |    250 |        2 |
|  2 | 2020-08-02 |    125 |        4 |
|  3 | 2020-08-03 |    300 |        6 |
+----+------------+--------+----------+

Lecture bonus :comment obtenir les données du dernier mois dans MySQL

Nous pouvons également créer une séquence non linéaire en mettant à jour la formule utilisée dans l'instruction UPDATE. Voici la requête SQL pour générer une séquence de valeurs carrées (y x y) de id colonne

mysql> update orders
      set sequence=id*id;

mysql> select * from orders;
+----+------------+--------+----------+
| id | order_date | amount | sequence |
+----+------------+--------+----------+
|  1 | 2020-08-01 |    250 |        1 |
|  2 | 2020-08-02 |    125 |        4 |
|  3 | 2020-08-03 |    300 |        9 |
+----+------------+--------+----------+

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 !