Estou lendo a documentação do Postgres 7.3 para adicionar uma restrição a uma tabela do PostgreSQL.
Diz:
Para adicionar uma restrição não nula, que não pode ser escrita como uma restrição de tabela, use esta sintaxe:
ALTER TABLE produtos ALTER COLUMN product_no SET NOT NULL;
A restrição será verificada imediatamente, portanto, os dados da tabela devem satisfazer a restrição antes que possam ser adicionados.
Eu não entendo o que significa "o que não pode ser escrito como uma restrição de tabela" ?
O que é restrição de tabela? Que restrição não é verificada imediatamente?
Isso é apenas uma questão de sintaxe.
Uma restrição de coluna é definida como
enquanto uma restrição de tabela se parece com
A restrição resultante é a mesma em ambos os casos.
Portanto, a documentação está dizendo que você precisa escrever
NOT NULL
na definição da coluna e não pode escrevê-la em nenhum outro lugar.