Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-09-2008
juanpe juanpe is offline
Miembro
 
Registrado: oct 2004
Posts: 46
Poder: 0
juanpe Va por buen camino
Problema con sql Update

Hola tengo un problema desde hace algún tiempo que no consigo solucionar.
Tan sencillo como querer hacer un update en tablas que tienen claves foraneas.
Esta es la estructura de una de ellas, que hace referencia de una tabla en cuestio.

CREATE TABLE EDIAGHEM (
ESTUDIO INTEGER NOT NULL,
ORDEN INTEGER NOT NULL,
GRUPO VARCHAR (1) CHARACTER SET ISO8859_1 NOT NULL COLLATE ISO8859_1,
DIAGNOSTICO VARCHAR (25) CHARACTER SET ISO8859_1 NOT NULL COLLATE ISO8859_1,
GRADO VARCHAR (8) CHARACTER SET ISO8859_1 COLLATE ISO8859_1);


/* Primary keys definition */
ALTER TABLE EDIAGHEM ADD PRIMARY KEY (ESTUDIO, ORDEN, GRUPO, DIAGNOSTICO);

/* Foreign keys definition */
ALTER TABLE EDIAGHEM ADD FOREIGN KEY (GRUPO, DIAGNOSTICO) REFERENCES DIAGHEMO (GRUPO, DIAGNOSTICO);

ALTER TABLE EDIAGHEM ADD FOREIGN KEY (ESTUDIO) REFERENCES ESTUDIO (ESTUDIO);



/* Indices definition */
CREATE INDEX IDX_EDIAGHEM1 ON EDIAGHEM (GRUPO, DIAGNOSTICO);
CREATE INDEX IDX_EDIAGHEM2 ON EDIAGHEM (ESTUDIO);


No doy con la forma de deshabilitar las restricciones.

Gracias por vuestro tiempo y ayuda.
Un saludo.
Responder Con Cita
  #2  
Antiguo 04-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
si lo que quieres es asociar una acción al actualizar un campo que es foráneo en otra tabla deberás poner por ejemplo algo asi...


Código SQL [-]
ALTER TABLE EDIAGHEM ADD FOREIGN KEY (GRUPO, DIAGNOSTICO) REFERENCES DIAGHEMO (GRUPO, DIAGNOSTICO)ON DELETE CASCADE ON UPDATE CASCADE;

si lo que quieres es hacer un update de tus tablas sin contar con las restricciones que has definido debes borrar esas restricciones y luego volver a crearlas.... http://www.clubdelphi.com/foros/show...r+foreign+keys

Última edición por tcp_ip_es fecha: 04-09-2008 a las 11:50:55.
Responder Con Cita
  #3  
Antiguo 04-09-2008
juanpe juanpe is offline
Miembro
 
Registrado: oct 2004
Posts: 46
Poder: 0
juanpe Va por buen camino
Muchas gracias por responder tcp_ip_es.
Mi intención es la segunda.
Voy a hechar un vistazo y os cuento
Responder Con Cita
  #4  
Antiguo 04-09-2008
juanpe juanpe is offline
Miembro
 
Registrado: oct 2004
Posts: 46
Poder: 0
juanpe Va por buen camino
Cita:
Empezado por tcp_ip_es Ver Mensaje
si lo que quieres es asociar una acción al actualizar un campo que es foráneo en otra tabla deberás poner por ejemplo algo asi...


Código SQL [-]ALTER TABLE EDIAGHEM ADD FOREIGN KEY (GRUPO, DIAGNOSTICO) REFERENCES DIAGHEMO (GRUPO, DIAGNOSTICO)ON DELETE CASCADE ON UPDATE CASCADE;


si lo que quieres es hacer un update de tus tablas sin contar con las restricciones que has definido debes borrar esas restricciones y luego volver a crearlas.... http://www.clubdelphi.com/foros/show...r+foreign+keys

Ahora me encuentro con un error diciendo que no reconoce el nombre de la restriccion : o eso creo:

Violation foreign key constraint "***unknown***" on table EDIAGHEM

Con el programa ibmanager veo que en restricciones aparece ademas de otros dos esta, que es la que me está dando pal pelo
INTEG_78[ESTUDIO]

Por tanto la sql que me da error es la siguiente:

queryaux.SQL.add('alter table ediaghem drop constraint INTEG_78');

He probado con todas las combinaciones y no doy con ello.
Un saludo y gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con update omarifr SQL 3 06-08-2007 23:28:38
Problema con Update y StoredProc Stilgar SQL 5 15-05-2007 21:30:01
Problema con update pache Firebird e Interbase 4 22-11-2006 21:08:06
Problema con Update e inner join Leonardo SQL 1 06-06-2006 02:21:10
Problema con un update en un SP RONPABLO Firebird e Interbase 3 09-03-2005 19:58:43


La franja horaria es GMT +2. Ahora son las 16:31:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi