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!