Ola amigo!

> Para auto-incremento, use o tipo serial.
> Ele não vai voltar o número ao excluir o registro, então
> você terá que criar uma trigger no "on delete" para voltar 1
> na sequence quando o excluído for o último registro.

Creio que não seja necessário tamanha jogada para um campo de auto
incremento. Use-se comumente SEQUENCES (sequencias). Que nada mais é
que o uma falsa-tabela que vai incrementando um inteiro sempre que
necessário.

para uma tabela no seguinte formato:
funcionario_id - auto-incrementar
nome - caracter
telefone - numero

cria-se a tabela sem o campo que se deve incrementar e cria-se uma
sequencia com um nome segestivo para tal tabela.
CREATE SEQUENCE seq_funcionario;

para obter o proximo indice livre basta um select simples:
SELECT nextVal('seq_funcionario');

Detalhe:  campos auto-increment não são retrocedidos. Eles não podem e
não devem ser decrescidos. Vide regras de normalisação de tabelas.

Esse metodo impede que inserções no banco que ocorram num mesmo
instante usem o mesmo indice para preencher um campo chave de
auto-incremento. O que pode ocorrer no formato de tabela mais comum,
quando muitas transações devem ser executadas...

É isso. Essa é a alternativa que conheço. Pode haver melhores.
rsrsrs.... Qualquer coisa posta ai....

Um abraço.

-- 
// Miere Teixeira
// Analista de interfaces - Analista de redes - Programador
// Tecnólogo em Informática
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a