Adicionando constraints no Oracle via alteração de tabela

Categoria: Oracle
Publicado em 10 de Julho de 2013

Existem 3 formas de se adicionar uma constraint no Oracle, por alteração de tabela. Segue abaixo exemplos para adicionar a constraint Primary Key:

1) In-line direto:

1
2
3
ALTER TABLE TABELA_CLIENTES
MODIFY COD_CLIENTE PRIMARY KEY
;

2) In-line com nome:

1
2
3
ALTER TABLE TABELA_CLIENTES
MODIFY COD_CLIENTE CONSTRAINT PK_COD_CLIENTE PRIMARY_KEY
;

3) Out-of-line: 

1
2
3
ALTER TABLE TABELA_CLIENTES
ADD CONSTRAINT PK_COD_CLIENTE PRIMARY KEY(COD_CLIENTE)
;

É possível constatar que as alterações do tipo in-line usam a palavra MODIFY, enquanto que a out-of-line usa ADD CONSTRAINT. Para constraints que precisam de mais que uma coluna (ex.: chave composta), somente a declaração out-of-line pode ser usada. Neste caso, os campos devem ser separados por vírgula.

Constraint NOT NULL

A constraint NOT NULL não pode ser usada com declaração do tipo out-of-line. Portanto, somente as seguintes declarações in-line são válidas:

1
2
3
4
5
6
7
ALTER TABLE TABELA_CLIENTES
MODIFY COD_CIDADE NOT NULL
;
 
ALTER TABLE TABELA_CLIENTES
MODIFY COD_CIDADE CONSTRAINT NN_COD_CIDADE NOT NULL
;

Constraint CHECK

Segue abaixo exemplo de sintaxe out-of-line:

1
2
3
ALTER TABLE TABELA_CLIENTES
ADD CONSTRAINT CK_IDADE CHECK(IDADE >= 18)
;

Constraint FOREIGN KEY (chave estrangeira)

Segue abaixo exemplo de sintaxe out-of-line:

1
2
3
4
5
ALTER TABLE TABELA_CLIENTES
ADD CONSTRAINT FK_COD_CIDADE 
    FOREIGN KEY(COD_CIDADE)
    REFERENCES TABELA_CIDADES(COD_CIDADE)
;
 

Copyright © Fernando Hidemi Uchiyama 2010 - Todos os direitos reservados