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;