Como usar sequências Postgres

Como usar sequências Postgres
Sequências são um tipo especial de objeto de banco de dados que gera identificadores numéricos exclusivos. Uma sequência é responsável por gerar as chaves primárias de um banco de dados. As seqüências geram a ordem numérica e existe a possibilidade de que várias seqüências contenham o mesmo numérico, mas a ordem é diferente em cada sequência. Este artigo demonstra o uso e operação de sequências no Postgres. Além disso, vários exemplos são citados para experimentar o funcionamento de sequências no Postges.

Como criar uma sequência no Postgres

As sequências no Postgres são criadas seguindo a sintaxe do comando Create Sequence fornecido abaixo:

Criar sequência

O denota o nome que você deseja definir para uma sequência e o contém as propriedades estendidas para essa sequência específica. As opções suportadas pela Create Sequence são mencionadas na seção a seguir:

Opções suportadas pelo comando Create Sequence

É possível criar uma sequência que tenha parâmetros definidos pelo usuário usando o comando Create Sequence. As seguintes opções são suportadas por este comando:

[Incremento [por]]: Esta opção cria a sequência com um incremento de um número numérico específico. O valor padrão é 1. Além disso, se o valor de incremento for positivo, a ordem estará ascendendo, enquanto a ordem decrescente poderá ser obtida passando o valor negativo.

[Como smallint | Int | Bigint]: O parâmetro de tipo de dados permite definir o padrão de sequência. Por padrão, o bigint é usado como um tipo de dados.

[MinValue] ou [sem minvalue]: O valor mínimo da sequência pode ser especificado usando esta opção. Se esta opção for deixada em branco, o valor máximo padrão será definido de acordo com o tipo de dados especificado.

[Maxvalue] ou [sem minvalue]: Esta opção é recíproca à mencionada acima, onde você pode definir o valor máximo para sua sequência. Além disso, se não for definido, o valor padrão do tipo de dados é considerado.

[Comece [com] Start]: Indica o valor do início da sequência.

[Ciclo] ou [sem ciclo]: Se esta opção for definida, o valor da sequência será retomado após atingir o limite máximo. O valor padrão, neste caso, não é um ciclo e retorna um erro depois de atingir o limite especificado da sequência.

[De propriedade de]: Esta opção é usada para associar a sequência a uma coluna específica de uma tabela. Resultantemente, quando a coluna é excluída, a sequência também é excluída automaticamente.

As próximas seções esclarecerão melhor o conceito de uma sequência no Postgres.

Como criar uma sequência no Postgres

Esta seção apresenta vários exemplos para criar uma sequência a partir de múltiplas perspectivas. Cada exemplo refere -se a um tipo diferente de sequência.

Exemplo 1 : Este comando cria uma sequência chamada "Linuxhint" com o valor inicial de 5 e o valor de incremento de 2:

# Crie sequência linuxhint incremento 2 Iniciar 5;

Exemplo 2: Além disso, se o incremento for definido como qualquer valor negativo (-), a sequência começa com o valor máximo e descerá para o valor mínimo especificado. Por exemplo, o comando fornecido abaixo criará uma sequência com as seguintes propriedades:

- ““Linux”Como nome de sequência

- ““-2”Como valor de incremento, o que significa que a sequência descerá com uma diferença de -2.

- ““10”Como valor inicial, como o incremento é um valor negativo, o valor máximo também seria 10.

- Por fim, o parâmetro do ciclo também é usado

# Crie o incremento do linux de sequência -2 MinValue 2 MaxValue 10 Iniciar 10 ciclo;

Como obter sequências de um banco de dados

Cada sequência está associada a um banco de dados. Por exemplo, estamos logados no Linuxhint Banco de dados e recuperamos todas as sequências com a ajuda do comando fornecido abaixo:

No comando abaixo, o comando, o Relname e sequence_name são obtidos de Pg_class. O Pg_class no Postgres contém as informações das tabelas sobre o (s) banco de dados (s).

Você veria duas categorias na saída; Um refere-se às sequências associadas à chave primária das tabelas e a outra categoria indica as sequências definidas pelo usuário que são criadas separadamente (como na seção acima).

# Selecione Relname Sequence_Name de pg_class onde relkind = 's';

Como obter o próximo/atual valor de uma sequência

Existem várias funções que podem ser usadas para obter o valor atual e o próximo. A função NextVal imprime o próximo valor em uma sequência usando a sintaxe dada abaixo:

Selecione NextVal ('Nome de sequência')

O comando escrito abaixo imprimirá o próximo valor do “Linuxhint” seqüência. Se você continuar executando o comando NextVal, obteria o próximo valor conforme a condição de incremento da sequência. Enquanto o “Linuxhint” A sequência é incrementada em 2, portanto, cada próximo valor seria impresso após incrementado por 2.

# Selecione NextVal ('Linuxhint');

Depois que o próximo valor for obtido, você pode obter o valor atual da sequência usando a função currval. O currval imprimirá a saída obtida pela função NextVal. Por exemplo, a última função NextVal mostrou a saída 7, portanto o resultado da currval deve ser 7. Da mesma forma, qualquer que seja o valor obtido usando a recente função NextVal, deve ser impressa por Currval. A função Currval opera com a seguinte sintaxe:

Selecione Currval ('Nome de sequência')

Vamos obter o valor atual da sequência "Linuxhint" com a ajuda do comando mencionado acima:

# Selecione currVal ('Linuxhint');

Além disso, a função currval depende da função NextVal. Se a função NextVal ainda não for aplicada a nenhuma sequência, você não poderá usar a função currval para obter o valor atual. Por exemplo, se aplicarmos a função currval no “Linux” Sequência na qual não aplicamos a função NextVal, então o seguinte erro será exibido.

# Selecione Currval ('Linux');

Este erro pode ser resolvido executando a função NextVal na sequência, à medida que a experimentamos no “Linux” Sequência, e o erro é resolvido.

# Selecione NextVal ('Linux');
# Selecione Currval ('Linux');

Como excluir uma sequência

Você pode soltar qualquer sequência do seu banco de dados usando a declaração de sequência de gota de Postgres. No caso de largar a mesa, uma sequência de propriedade de qualquer coluna seria excluída. O comando fornecido aqui cai o “Linux” seqüência.

# Sequência de soltar se existe Linux;

Conclusão

Geralmente, o que vem à sua mente depois de obter o seqüência palavra? Uma lista ordenada de números. Sim, o conceito é o mesmo no Postgres também. Este post explica o conceito de sequência e demonstra sua funcionalidade básica no Postgres. Estudamos a criação de sequência de várias maneiras neste guia. Além disso, as próximas e atuais funções de valor das seqüências também são discutidas.