FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Integridad Referencial
hola a todos,
Necesito que alguien me explique si existe alguna variante de que Interbase me chequee el mantenimiento de la integridad referencial. Me explico mejor: Tengo creada una Base de datos maestro detalles, la cuestión es que yo tengo que controlar si un usuario va a eliminar o modificar el campo llave del maestro de forma tal que no deje ningún detalle colgado (sin maestro). ¿Es posible que el propio SGBD me controle esto? Yo estoy utilizando Delphi 7 e Interbase 6.5 Gracias
__________________
Saludos Seara2005 |
#2
|
||||
|
||||
Lee sobre la clausula cascade.
Salu2. |
#3
|
|||
|
|||
Gracias Ya Resolvi Y Me Funciona De Maravilla
__________________
Saludos Seara2005 |
#4
|
|||
|
|||
Me explico como lo hice para que le pueda servir a otros, porque de eso se tratan los foros:
Bien, yo estoy utilizándo el (IB Expert) un software muy bueno y que tiene una versión libre con pocas limitaciones. Tengo dos tablas una Maestra y una detalles. Creo una llave primaria (primary key) en maestra, y voy a la tabla detalles y en las restrinciones creo una llave foránea (foreing key) sobre el campo llave y que hace referencia al campo llave de la tabla maestra, luego aparecen las opciones de como responder ante una modificación o una eliminación del campo llave de la tabla maestra, particularmente yo escogí para modificación (cascade) donde el SGBD me modifica automáticamente el campo llave de la tabla esclava manteniendo la intedridad, y en eliminar escogí (no action) que evita la posibilidad de que el usuario elimine un record de la tabla maestra si tiene dependencias en la tabla esclava. en IB Expert todo esto es visual y muy fácil y además te va poniendo el código SQL que se va generando. CODIGO SQL: Para crear la llave primaria en la tabla maestra: ALTER TABLE MAESTRA ADD CONSTRAINT PK_MAESTRA PRIMARY KEY (CAMPO LLAVE); Para crear el índice foráneo en la tabla esclava: ALTER TABLE ESCLAVA ADD CONSTRAINT FK_ESCLAVA_1 FOREIGN KEY (LLAVE DE ESCLAVA) REFERENCES MAESTRA (LLAVE DE MAESTRA) ON UPDATE CASCADE; Ya lo he probado y funciona de maravila. Gracias a todos y a los principiantes como yó les recomiendo que utilicen el IB Expert que nos permite hacerlo todo visualmente e ir aprendiendo SQL.
__________________
Saludos Seara2005 |
#5
|
||||
|
||||
Deberías añadir ... ON DELETE CASCADE
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#6
|
|||
|
|||
Lepe, gracias pero si agrego lo que me sugieres me himagino que se eliminarían los records de la tabla esclava si se borra su maestro y no es lo que pretendo, con solo omitir ON DELETE el SGBD para mantener la integridad no permite borrar un maestro que tenga esclavos y es precisamente lo que quiero.
Gracias de todos modos
__________________
Saludos Seara2005 |
#7
|
|||
|
|||
Si alguien necesita el instalador del IB Expert se lo puedo enviar a su correo, la versión que tengo es libre.
__________________
Saludos Seara2005 |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿ Integridad referencial ? | Turia | MySQL | 1 | 25-01-2006 13:59:33 |
Integridad Referencial | migark | Conexión con bases de datos | 2 | 14-06-2005 16:06:57 |
opciones integridad referencial | marrullas | Firebird e Interbase | 2 | 04-06-2004 16:16:14 |
Integridad Referencial | pablo | Conexión con bases de datos | 3 | 03-01-2004 14:02:53 |
Integridad referencial | jdiazan | Firebird e Interbase | 3 | 07-07-2003 17:27:34 |
|