Às vezes você pode precisar gerar uma sequência no MySQL. Como o MySQL não possui uma função interna para criar sequência, você precisa gerá-la via consulta SQL. Veja como criar uma sequência no MySQL usando a consulta de sequência do MySQL.
Como criar sequência no MySQL
Aqui estão as etapas para criar sequência no MySQL. Existem várias maneiras de gerar sequência no MySQL.
Criar sequência usando AUTO_INCREMENT
Você pode simplesmente armazenar sua sequência MySQL em uma coluna usando o atributo AUTO_INCREMENT durante a criação da tabela. Digamos que você queira criar a tabela orders(id, order_date, amount) e armazene a sequência em id coluna.
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 | +----+------------+--------+
Na tabela acima, definimos id column como nossa chave primária e inclua a opção AUTO_INCREMENT para incrementar e armazenar automaticamente os valores da chave primária nela.
Observe que o MySQL permite que você tenha apenas uma coluna AUTO_INCREMENT por tabela e isso também, como chave primária.
Na consulta INSERT acima, fornecemos apenas valores para order_date e quantidade colunas, mas não id coluna, mas o MySQL gera automaticamente a sequência para ela.
Bônus de leitura:Como comparar duas tabelas no MySQL
Criar sequência sem usar AUTO_INCREMENT
Digamos que você queira criar outra coluna de sequência sem usar AUTO_INCREMENT. Nesse caso, você precisará usar a instrução UPDATE para calcular e preencher matematicamente essa coluna de sequência.
Por exemplo, vamos adicionar uma sequência coluna para a tabela acima para armazenar uma nova sequência.
mysql> alter table orders add column sequence int;
Bônus de leitura:Como copiar tabela no MySQL
Em seguida, usamos a instrução UPDATE para criar sequência no MySQL. Vamos criar uma sequência que é duas vezes id valor da coluna
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 | +----+------------+--------+----------+
Bônus de leitura:Como obter dados do último mês no MySQL
Também podemos criar uma sequência não linear atualizando a fórmula usada na instrução UPDATE. Aqui está a consulta SQL para gerar uma sequência de valores Square (y x y) de id coluna
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 | +----+------------+--------+----------+
O Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!