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ênciaO 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');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.