sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit sekvenci v MySQL

Někdy může být potřeba vygenerovat sekvenci v MySQL. Protože MySQL nemá vestavěnou funkci pro vytváření sekvence, musíte ji vygenerovat pomocí SQL dotazu. Zde je návod, jak vytvořit sekvenci v MySQL pomocí sekvenčního dotazu MySQL.

Jak vytvořit sekvenci v MySQL

Zde jsou kroky k vytvoření sekvence v MySQL. Existuje několik způsobů, jak generovat sekvenci v MySQL.

Vytvořte sekvenci pomocí AUTO_INCREMENT

Svou sekvenci MySQL můžete jednoduše uložit do sloupce pomocí atributu AUTO_INCREMENT během vytváření tabulky. Řekněme, že chcete vytvořit tabulku objednávky(id, datum_objednávky, částka) a uložte sekvenci do id sloupec.

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 |
+----+------------+--------+

Ve výše uvedené tabulce definujeme id sloupec jako náš primární klíč a zahrnuje možnost AUTO_INCREMENT, aby se v něm automaticky zvýšily a uložily hodnoty primárního klíče.

Vezměte prosím na vědomí, že MySQL vám umožňuje mít pouze jeden sloupec AUTO_INCREMENT na tabulku a to také jako primární klíč.

Ve výše uvedeném dotazu INSERT poskytujeme pouze hodnoty pro order_date a částka sloupce, ale ne id sloupec, ale MySQL pro něj automaticky generuje sekvenci.

Bonusové čtení:Jak porovnat dvě tabulky v MySQL

Vytvořit sekvenci bez použití AUTO_INCREMENT

Řekněme, že chcete vytvořit další sloupec sekvence bez použití AUTO_INCREMENT. V takovém případě budete muset k matematickému výpočtu a naplnění tohoto sloupce sekvence použít příkaz UPDATE.

Přidejte například sekvenci sloupec do výše uvedené tabulky pro uložení nové sekvence.

mysql> alter table orders 
add column sequence int;

Bonusové čtení:Jak kopírovat tabulku v MySQL

Dále použijeme příkaz UPDATE k vytvoření sekvence v MySQL. Vytvoříme sekvenci, která je dvakrát id hodnota sloupce

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 |
+----+------------+--------+----------+

Bonusové čtení:Jak získat data za poslední měsíc v MySQL

Můžeme také vytvořit nelineární sekvenci aktualizací vzorce použitého v příkazu UPDATE. Zde je dotaz SQL pro vygenerování sekvence čtvercových hodnot (y x y) id sloupec

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 usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!

  1. Jak funguje funkce UNHEX() v MySQL

  2. Existuje způsob, jak vybrat, aniž by došlo k zamykání v MySQL?

  3. SQL Server tiše zkrátí varchar v uložených procedurách

  4. Sledování automatických aktualizací statistik