PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

problemas de tipo de dados serial pg_dump


De documentos :

Os tipos de dados smallserial , serial e bigserial não são tipos verdadeiros, mas apenas uma conveniência de notação para criar colunas de identificadores exclusivos (semelhante à propriedade AUTO_INCREMENT suportada por alguns outros bancos de dados). Na implementação atual, especificando:
CREATE TABLE tablename (
    colname SERIAL
);

é equivalente a especificar:
CREATE SEQUENCE tablename_colname_seq;
CREATE TABLE tablename (
    colname integer NOT NULL DEFAULT nextval('tablename_colname_seq')
);
ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;

Assim, criamos uma coluna de inteiros e organizamos para que seus valores padrão sejam atribuídos a partir de um gerador de sequência. Uma restrição NOT NULL é aplicada para garantir que um valor nulo não possa ser inserido. (Na maioria dos casos, você também deseja anexar uma restrição UNIQUE ou PRIMARY KEY para evitar que valores duplicados sejam inseridos acidentalmente, mas isso não é automático.) será descartado se a coluna ou tabela for descartada.