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 !