MariaDB - Sequências

Na versão 10.0.3, MariaDB introduziu um mecanismo de armazenamento conhecido como sequência. Seu ad hoc gera uma sequência inteira para operações e, em seguida, termina. A sequência contém inteiros positivos em ordem decrescente ou crescente e usa um valor inicial, final e de incremento.

Ele não permite o uso em várias consultas, apenas em sua consulta original por causa de sua natureza virtual (não gravada em disco). No entanto, as tabelas de sequência podem ser convertidas em tabelas padrão por meio de um comando ALTER. Se uma tabela convertida for excluída, a tabela de sequência ainda existirá. As sequências também não podem produzir números negativos ou girar no mínimo / máximo.

Instalando o Sequence Engine

O uso de sequências requer a instalação do mecanismo de sequência, que MariaDB distribui como um plug-in em vez de binário. Instale-o com o seguinte comando -

INSTALL SONAME "ha_sequence";

Após a instalação, verifique -

SHOW ENGINES\G

Lembre-se de que, após a instalação do mecanismo, você não pode criar uma tabela padrão com um nome que use a sintaxe de sequência, mas pode criar uma tabela temporária com um nome de sintaxe de sequência.

Criando Sequência

Existem dois métodos de criação de sequência -

  • Crie uma tabela e use o atributo AUTO_INCREMENT para definir uma coluna como incremento automático.

  • Use um banco de dados existente e use uma consulta SELECT de sequência para produzir uma sequência. A consulta usa a sintaxe seq_ [FROM] _to_ [TO] ou seq_ [FROM] _to_ [TO] _step_STEP.

As melhores práticas preferem o uso do segundo método. Reveja um exemplo de criação de sequência fornecido abaixo -

SELECT * FROM seq_77_to_99;

As sequências têm muitos usos -

  • Localize os valores ausentes em uma coluna para proteger contra problemas relacionados nas operações -

SELECT myseq.seq FROM seq_22_to_28 myseq LEFT JOIN table1 t ON myseq.seq
   = x.y WHERE x.y IS NULL;
  • Construa uma combinação de valores -

SELECT x1.seq, x2.seq FROM seq_5_to_9 x1 JOIN seq_5_to_9 x2 ORDER BY 5, 6;
  • Encontre múltiplos de um número -

SELECT seq FROM seq_3_to_100_step_4;
  • Construa uma sequência de datas para uso em aplicativos como sistemas de reserva.
  • Construa uma seqüência de tempo.