PostgreSQL Prático/DDL/Alterações nos objetos dos bancos

3.2 - Alterações nos objetos dos bancos

Adicionar campo, remover campo, adicionar constraint, remover constraint, alterar valor default, alterar nome de campo, alterar nome de tabela, alterar tipo de dado de campo (>=8.0).

Adicionar Um Campo

ALTER TABLE tabela ADD COLUMN campo tipo;

ALTER TABLE produtos ADD COLUMN descricao text;


Remover Campo

ALTER TABLE tabela DROP COLUMN campo;

ALTER TABLE produtos DROP COLUMN descricao;

ALTER TABLE produtos DROP COLUMN descricao CASCADE; -- Cuidado com CASCADE


Adicionar Constraint

ALTER TABLE tabela ADD CONSTRAINT nome;

ALTER TABLE produtos ADD COLUMN descricao text CHECK (descricao <> );

ALTER TABLE produtos ADD CHECK (nome <> );

ALTER TABLE produtos ADD CONSTRAINT unique_cod_prod UNIQUE (cod_prod);

ALTER TABLE produtos ADD FOREIGN KEY (cod_produtos) REFERENCES grupo_produtos;

ALTER TABLE produtos ADD CONSTRAINT vendas_fk FOREIGN KEY (cod_produtos) REFERENCES produtos (codigo);


Remover Constraint

ALTER TABLE tabela DROP CONSTRAINT nome;

ALTER TABLE produtos DROP CONSTRAINT produtos_pk;

ALTERAR VALOR DEFAULT DE CAMPO:


Mudar Tipo de Dados de Campo (Só >=8.0):

ALTER TABLE tabela ALTER COLUMN campo TYPE tipo;

ALTER TABLE produtos ALTER COLUMN preco TYPE numeric(10,2);

ALTER TABLE produtos ALTER COLUMN data TYPE DATE USING CAST (data AS DATE);


Mudar Nome De Campo

ALTER TABLE tabela RENAME COLUMN campo_atual TO campo_novo;

ALTER TABLE produtos RENAME COLUMN cod_prod TO cod_produto;

Setar/Remover Valor Default de Campo

ALTER TABLE tabela ALTER COLUMN campo SET DEFAULT valor;

ALTER TABLE produtos ALTER COLUMN cod_prod SET DEFAULT 0;

ALTER TABLE produtos ALTER COLUMN preco SET DEFAULT 7.77;

ALTER TABLE tabela ALTER COLUMN campo DROP DEFAULT;

ALTER TABLE produtos ALTER COLUMN preco DROP DEFAULT;


Adicionar/Remover NOT NULL

ALTER TABLE produtos ALTER COLUMN cod_prod SET NOT NULL;

ALTER TABLE produtos ALTER COLUMN cod_prod DROP NOT NULL;


Renomear Tabela

ALTER TABLE tabela RENAME TO nomenovo;

ALTER TABLE produtos RENAME TO equipamentos;


Adicionar Constraint (Restrição)

ALTER TABLE produtos ADD CONSTRAINT produtos_pk PRIMARY KEY (codigo);

ALTER TABLE vendas ADD CONSTRAINT vendas_fk FOREIGN KEY (codigo) REFERENCES produtos(codigo_produto);

ALTER TABLE vendas ADD CONSTRAINT vendas_fk FOREIGN KEY (codigo) REFERENCES produtos; -- Neste caso usa a chave primária da tabela produtos


Remover Constraint (Restrição) ALTER TABLE produtos DROP CONSTRAINT produtos_pk;

ALTER TABLE vendas DROP CONSTRAINT vendas_fk;