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!