5.2. Valor padrão

PostgreSQL 14.5: Valor padrão

Pode ser atribuído um valor padrão a uma coluna. Quando é criada uma nova linha, e não é especificado nenhum valor para algumas de suas colunas, estas colunas são preenchidas com o valor padrão de cada uma delas. Além disso, um comando de manipulação de dados pode requerer explicitamente que a coluna receba o seu valor padrão, sem saber qual é este valor (os detalhes sobre os comandos de manipulação de dados estão no Capítulo 6).

Se não for declarado explicitamente nenhum valor padrão, o valor nulo será o valor padrão. Isto geralmente faz sentido, porque o valor nulo pode ser considerado como representando um dado desconhecido.

Na definição da tabela, o valor padrão é posicionado após o tipo de dado da coluna. Por exemplo:

CREATE TABLE produtos (
    cod_prod   integer PRIMARY KEY,
    nome       text,
    preco      numeric DEFAULT 9.99
);

O valor padrão pode ser uma expressão, avaliada sempre que for inserido o valor padrão (e não quando a tabela é criada). Um exemplo comum é uma coluna do tipo timestamp com o valor padrão now(), para que receba a data e hora de inserção da linha. Outro exemplo comum é a geração de um "número serial" para cada linha. No PostgreSQL isto é feito tipicamente através de algo como:

CREATE TABLE produtos (
    cod_prod integer DEFAULT nextval('produtos_cod_prod_seq'),
    ...
);

onde a função nextval() fornece valores sucessivos do objeto de seqüência (consulte a Seção 9.12). Esta situação é tão comum que existe uma forma abreviada da mesma:

CREATE TABLE produtos (
    cod_prod SERIAL,
    ...
);

A forma abreviada SERIAL é mostrada posteriormente na Seção 8.1.4.

SourceForge.net Logo CSS válido!