[firebase-br] Alterar constraint

Mr.Mothman mr.mothman em gmail.com
Qui Jul 14 09:52:44 -03 2005


Caro Magnum,

Em um dos bancos aqui de minha rede, tenho uma tabela que segue a estrutura 
abaixo:

CREATE TABLE TRABALHOS_ARTISTA (
TRABALHO_ID INTEGER NOT NULL,
MIDIA_ARTISTA_ID INTEGER NOT NULL,
PERSONAGEM VARCHAR(50));

ALTER TABLE TRABALHOS_ARTISTA ADD CONSTRAINT PK_TRABALHOS_ARTISTA PRIMARY 
KEY (MIDIA_ARTISTA_ID,TRABALHO_ID);

ALTER TABLE TRABALHOS_ARTISTA ADD CONSTRAINT FK_TRABALHOSARTISTA_ARTISTA 
FOREIGN KEY (MIDIA_ARTISTA_ID) REFERENCES MIDIA_ARTISTA(MIDIA_ARTISTA_ID) ON 
UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE TRABALHOS_ARTISTA ADD CONSTRAINT FK_TRABALHOSARTISTA_TRABALHOS 
FOREIGN KEY (TRABALHO_ID) REFERENCES TRABALHOS(TRABALHO_ID) ON UPDATE 
RESTRICT ON DELETE RESTRICT;

Caso eu deseje alterar a contraint FK_TRABALHOSARTISTA_ARTISTA poderia fazer 
o seguinte:

1) Deleto a Constraint: 
ALTER TABLE TRABALHOS_ARTISTA DROP CONSTRAINT FK_TRABALHOSARTISTA_ARTISTA

2) Recriar a Constraint fazendo as alterações necessárias:
 ALTER TABLE TRABALHOS_ARTISTA ADD CONSTRAINT FK_TRABALHOSARTISTA_ARTISTA 
FOREIGN KEY (MIDIA_ARTISTA_ID) REFERENCES MIDIA_ARTISTA(MIDIA_ARTISTA_ID) ON 
UPDATE CASCADE ON DELETE CASCADE;

O objeto agora ficararia assim:

 CREATE TABLE TRABALHOS_ARTISTA (
TRABALHO_ID INTEGER NOT NULL,
MIDIA_ARTISTA_ID INTEGER NOT NULL,
PERSONAGEM VARCHAR(50));

ALTER TABLE TRABALHOS_ARTISTA ADD CONSTRAINT PK_TRABALHOS_ARTISTA PRIMARY 
KEY (MIDIA_ARTISTA_ID,TRABALHO_ID);

ALTER TABLE TRABALHOS_ARTISTA ADD CONSTRAINT FK_TRABALHOSARTISTA_ARTISTA 
FOREIGN KEY (MIDIA_ARTISTA_ID) REFERENCES MIDIA_ARTISTA(MIDIA_ARTISTA_ID) ON 
UPDATE RESTRICT ON DELETE RESTRICT;

ALTER TABLE TRABALHOS_ARTISTA ADD CONSTRAINT FK_TRABALHOSARTISTA_TRABALHOS 
FOREIGN KEY (TRABALHO_ID) REFERENCES TRABALHOS(TRABALHO_ID) ON UPDATE 
CASCADE ON DELETE CASCADE;

Espero ter podido ajudá-lo.

[ ]'s

Mr.Mothman



Mais detalhes sobre a lista de discussão lista