quinta-feira, 25 de agosto de 2016

Campo autoincremento PostgreSql

Objetivo
Criar uma tabela básica com o campo código autoincremento no Gerenciador de Banco de Dados PostgreSql.



Tecnologia aplicada

Explicando...
Vamos criar uma tabela básica de cidade onde o campo código será autoincremento. No PostgreSql, isso é feito através de um recurso chamado sequencia. Sequência é um gerador sequencial de números configurável. É possível definir o ínicio da sequencia, o salto (incremento), valor máximo entre outras opções. O SGBD disponibiliza três funções nativas para o gerenciamento de sequências. São elas:
  • nextval => Incrementa e retorna o novo valor da sequência.
  • currval => Retorna o ultimo valor da sequência.
  • setval => Configura um valor para sequência.
Uma sequência pode ser criada pelo simples comando:
CREATE SEQUENCE teste START 1;

Nesse comando criamos uma sequência de nome "teste" que se inicia em 1.

É possível, ainda, criar uma sequência através de uma comando mais completo:
CREATE SEQUENCE teste
      INCREMENT 1
      MINVALUE 1
      MAXVALUE 999999999
      START 1
      CACHE 1;

Explicando cada parâmetro do comando acima:
  • Increment => valor do salto de um numero para o outro na sequencia. 1 para incrementar de 1 em 1.
  • MinValue => Valor mínimo que a sequência pode assumir.
  • MaxValue => Valor máximo que a sequência pode assumir.
  • Start => Valor inicial da sequência.
  • Cache => Valor de controle para alocação e acesso da sequência em memória. Valor mínimo e padrão é de 1 que indica rápido acesso. Muito utilizado para gerenciamento de memória em banco que possui várias sequências em uma mesma transação.
Desenvolvimento
Já que entendemos tudo sobre sequência, vamos criar uma sequência com o nome "seq_cidade_id_cidade"  para que ela faça o incremento automático do nosso campo código da tabela de cidade:

CREATE SEQUENCE seq_cidade_id_cidade START 1;

Agora, vamos criar nossa tabela com os campos {id_cidade, nome, estado}:
CREATE TABLE cidade
(
      id_cidade INTEGER NOT NULL DEFAULT NEXTVAL('seq_cidade_id_cidade'),
      nome character varying(100),
      estado character(2),
      CONSTRAINT pk_cidade_id_cidade PRIMARY KEY (id_cidade)
);

Com a tabela criada, está tudo pronto.
Para realizar uma inserção, basta executar o seguinte comando:
INSERT INTO cidade(nome, estado) VALUES ('Ipatinga', 'MG');

A cada comando executado o SGBD criará o código automaticamente.

Este foi nosso post.
Obrigado e até a próxima!









Nenhum comentário: