Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como criar sequência no MySQL


À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!