sql >> Database teknologi >  >> RDS >> Mysql

Sådan opretter du sekvens i MySQL

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!

  1. Automatiseret test af desktopapplikationen:overblik over hensigtsmæssighed og rammer

  2. Aggreger funktion over et givet tidsinterval

  3. 2019 Databasetrends – SQL vs. NoSQL, Topdatabaser, Enkelt vs. Multiple Databasebrug

  4. En guide til MySQL Galera Cluster Streaming Replikering:Første del