[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