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. |
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...
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 |
Muchas gracias por responder tcp_ip_es.
Mi intención es la segunda. Voy a hechar un vistazo y os cuento ;) |
Cita:
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 :p 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. |
La franja horaria es GMT +2. Ahora son las 08:17:49. |
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