Sequência SQL

Sequência SQL
Você já usou o incremento automático ou serial em um banco de dados? Nesse caso, você tem uma sequência SQL. Embora as seqüências e colunas de identidade sejam um pouco diferentes, elas compartilham características comuns.

Uma sequência refere -se a um conjunto de valores inteiros exclusivos que são gerados sob demanda. Eles são um recurso predominante em muitos mecanismos de banco de dados. Isso ocorre porque vários cenários exigem que cada registro no banco de dados tenha um identificador exclusivo.

Vamos discutir o conceito de seqüências SQL neste tutorial.

Como funcionam as sequências SQL

Não há maneira universal de descrever como as sequências funcionam. Isso ocorre porque vários mecanismos de banco de dados os implementam de maneira diferente.

Vamos aprender como isso funciona.

Sequências em MySQL

As sequências no MySQL são implementadas definindo o atributo Auto_incrent. Na maioria dos casos, esta coluna também é selecionada como a chave primária, pois cada valor na coluna deve ser único.

Podemos ilustrar como usar uma sequência no MySQL, como mostrado na consulta abaixo:

-- Mysql
Crie Table Table_name (
Column_name int Auto_increment Chave primária,
Column_name2 Varchar (100),
);

A consulta acima cria uma coluna com uma sequência SQL usando a palavra -chave Auto_increment. Observe que também definimos a restrição de chave primária para a coluna.

Embora a adição de sequências no MySQL seja tão fácil quanto ilustrada acima, há alguns pontos a serem observados:

  1. A coluna de sequência no MySQL deve ser indexada. Isso significa definir a coluna como chave primária ou exclusiva.
  2. A coluna não pode conter valores nulos. Você pode resolver isso definindo a restrição não nula na coluna. Em alguns casos, o MySQL pode especificar explicitamente a restrição não nula quando a restrição automática é adicionada.
  3. Os valores na coluna de sequência começam de 1 e aumentam em 1 para cada registro adicionado à tabela.
  4. Myisam e Innodb não suportam a reutilização de números de sequência deletados. Portanto, o MySQL atribuirá o seguinte valor à próxima sequência inserida se você remover um registro. Por exemplo, se você excluir 10, o MySQL não reutilizará esse valor. Em vez disso, ele atribuirá 11 ao próximo registro.
  5. O MySQL permite que você redefina o valor de incremento automático.

Sequência no PostgreSQL

No PostgreSQL, as seqüências são objetos definidos pelo usuário ligados ao esquema em que são criados.

Para criar uma sequência no PostgreSQL, use a sintaxe como mostrado abaixo:

-- PostGresql
Criar sequência [se não existe] sequence_name
como data_type
Incremento por [increment_value]
minvalue [minumum_value] | sem minumum_value
maxvalue [maximum_value] | Sem máximo_value
Comece [com] Start
cache
Sem ciclo
de propriedade de [Table_name.column_name] Nenhum

Ok, o que tudo isso significa? Permita -nos dividi -lo em seções menores que podemos entender.

Criar sequência

A primeira parte é a sequência de criação. Isso permite que você crie uma nova sequência se não existir. O nome da sequência pode ser o que você desejar.

Como data_type

A cláusula AS permite especificar o tipo de dados para a sequência. PostgreSQL permite tipos de SmallInt, Int e Bigint. Se você não deseja identificar o tipo de dados, pode pular esta cláusula, e o PostgreSQL será padrão para Bigint.

Incremento por

Esta cláusula especifica o valor adicionado à sequência atual para criar um novo valor de sequência. Por exemplo, se a sequência for 1,2,3,4,5, o valor de incremento é 1.

Se você deseja começar de cima e descer à medida que os registros são adicionados, especifique um valor negativo ao incremento por cláusula.

Por padrão, o PostgreSQL usará o valor de incremento de 1.

Minvalue

Esta cláusula define o valor mínimo para a sequência. Se nenhum valor for especificado, o PostgreSQL usará o padrão.

VALOR MÁXIMO

A cláusula Maxvalue define o valor máximo para a sequência.

COMEÇA COM

Esta cláusula define o valor inicial para a sequência. Se nenhum valor for especificado, o minValue será usado para sequências ascendentes e o maxvule será usado para sequências descendentes.

Cache

Esta cláusula definirá quantos números de sequência devem ser pré -alocados e armazenados na memória. Isso permite acesso mais rápido. Por padrão, o PostgreSQL usará um valor de 1, portanto, sem cache.

CICLO

A cláusula de ciclo permite especificar o envoltório quando os valores máximos ou min são alcançados na sequência. PostgreSQL usará Min e MaxValue, respectivamente, quando o limite for atingido se o ciclo não especificado.

De propriedade de

Esta opção especifica com a qual a coluna da tabela a sequência está associada. Portanto, se a coluna ou tabela for descartada, a sequência também será excluída.

Se a sequência não estiver associada a nenhuma tabela ou coluna, você poderá definir o que não.

Para criar uma sequência simples no PostgreSQL, execute a consulta:

Crie sequência my_seq
incremento em 1
MinValue 1
MaxValue 1000
Inicie 1
de propriedade de my_table.my_column

A consulta acima cria uma nova sequência associada ao my_column na tabela my_table.

Você pode explorar mais sobre as sequências PostGresql no recurso abaixo:

https: // www.PostGresql.org/docs/atual/sql-createsequence.html

Sequências no servidor SQL

Como o PostgreSQL, as seqüências no servidor SQL são objetos definidos pelo usuário. Portanto, eles usam sintaxe intimamente semelhante para sequências no PostgreSQL. A única diferença é a sintaxe.

A sintaxe de exemplo é como ilustrado abaixo:

Crie sequência [schema_name.] sequence_name
[Como INTEGER_TYPE]
[Comece com start_value]
[Incremento por increment_value]
[Minvalue [min_value] | Sem minvalue]
[MaxValue [max_value] | No maxvalue]
[Ciclo | Sem ciclo]
[Cache [cache_size] | No cache];

Em vez de nenhum, o SQL Server não usa ciclo nem cache.

Você pode explorar mais sobre as sequências do SQL Server no recurso abaixo:

https: // docs.Microsoft.COM/EN-US/SQL/T-SQL/DEMTIAÇÕES/CREATE-SEQUENCE-TRANSACT-SQL?View = SQL-Server-ver15

Nota: Para usuários do banco de dados Oracle, verifique o recurso abaixo

https: // docs.oráculo.com/cd/b12037_01/servidor.101/b10759/declarações_6014.htm

Conclusão

Este artigo detalhado abordou sequências SQL e como podemos usá -las em nossos bancos de dados. Fique ligado para mais tutoriais.