Nogle gange skal du muligvis generere sekvens i MySQL. Da MySQL ikke har en indbygget funktion til at oprette sekvens, skal du generere den via SQL-forespørgsel. Sådan opretter du sekvens i MySQL ved hjælp af MySQL-sekvensforespørgsel.
Sådan opretter du sekvens i MySQL
Her er trinene til at oprette sekvens i MySQL. Der er forskellige måder at generere sekvens i MySQL.
Opret sekvens ved hjælp af AUTO_INCREMENT
Du kan simpelthen gemme din MySQL-sekvens i en kolonne ved hjælp af AUTO_INCREMENT-attributten under oprettelse af tabel. Lad os sige, at du vil oprette tabel ordrer (id, ordre_dato, beløb) og gem sekvens i id kolonne.
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 |
+----+------------+--------+
I ovenstående tabel definerer vi id kolonne som vores primære nøgle og inkludere AUTO_INCREMENT mulighed for automatisk at øge og gemme primærnøgleværdier i den.
Bemærk venligst, MySQL tillader dig kun at have én AUTO_INCREMENT kolonne pr. tabel og det også som primær nøgle.
I ovenstående INSERT-forespørgsel angiver vi kun værdier for order_date og beløb kolonner, men ikke id kolonne, men MySQL genererer automatisk sekvens for den.
Bonus Læs:Sådan sammenlignes to tabeller i MySQL
Opret sekvens uden at bruge AUTO_INCREMENT
Lad os sige, at du vil oprette en anden sekvenskolonne uden at bruge AUTO_INCREMENT. I så fald skal du bruge UPDATE-sætningen til matematisk at beregne og udfylde denne sekvenskolonne.
Lad os f.eks. tilføje en sekvens kolonne til ovenstående tabel for at gemme en ny sekvens.
mysql> alter table orders add column sequence int;
Bonus Læs:Sådan kopierer du tabel i MySQL
Dernæst bruger vi UPDATE-sætning til at oprette sekvens i MySQL. Vi vil oprette en sekvens, der er to gange id kolonneværdi
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 |
+----+------------+--------+----------+
Bonuslæser:Sådan får du sidste måneds data i MySQL
Vi kan også oprette en ikke-lineær sekvens ved at opdatere formlen brugt i UPDATE-sætningen. Her er SQL-forespørgslen til at generere en sekvens af kvadratiske værdier (y x y) af id kolonne
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 gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!