FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Principiante integridad referencial
Asigné integridad referencial entre 2 tablas que son exactamente iguales...
Tabla Profesor y Tabla Nothabil, tienen la siguiente estructura: Matricula (primaria) : integer; Nombre : Char; etc... etc... el caso es que son identicas, ambas con la misma llave primaria. Se asigna la integridad entre los 2 campos "matricula". Pero al momento de agregar un registro mediante mi aplicacion (Delphi 7, componentes MDO) me pone el siguiente error: 'violation of foreign key constraint FK_PROFESOR1" on table "PROFESOR" foreign key reference does not exist' alguien puede orientarme... no se puede hacer i.r con 2 llaves primarias?? soy principiante en firebird... Gracias por su ayuda de antemano. |
#2
|
||||
|
||||
Resp
El problema que tienes es que se esta vilando la integridad referencial.
Ejemplo tienes tabla1 T1 y tabla2 T2 T2 tienen una integridad refenecial hacia T1 Si tratas de insertar un registro en T2 el campo de T2 por el cual se hace referencia a T1 No se Encuantra en registro relacionado no se va a poder insertar. Te explico con datos T1(C1:Entero, C2:cadena) Regsitros de T1 C1 | C2 ------------- 1 | Primero ------------- 2 | Segundo ------------- T2(CT1, C1, C2) Donde CT1 es el campo d erefencia hacia la tabla T2 por el campo C1 Si hacemos esto
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
#3
|
|||
|
|||
Me parece curioso que quieras tener una integridad referencial en dos tablas identicas, lo que yo tengo entendido las referencias se usan principalmente para tablas maestro-detalle.
Si nos explicas mejor que intentas hacer con las dos tablas te podrían dar una mejor respuesta a tu problemática. Bienvenido al Club y te invito a que leas nuestra guía de estilo. Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#4
|
||||
|
||||
entonces.. como lo soluciono?? disculpa la ineptitud pero como dije soy muy principiante jeje
|
#5
|
|||
|
|||
Cita:
Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#6
|
||||
|
||||
razon
egostar, gracias por la bienvenida. La razon es, que en un modulo de la aplicacion se capturan o modifican los datos del registro y se dan de alta en ambas tablas.
Y en otro modulo, se pueden modificar o borrar datos, pero solo en una de las 2 tablas. mientras que la otra se queda intacta. se que se puede hacer facilmente mediante codigo si (y ya lo hice)... pero queria hacer pruebas con lo de integridad referencial. danke |
#7
|
||||
|
||||
Cita:
creo que lo que estas haciendo es insertar datos en la tabla hija y no existe el correspondiente registro padre en la tabla principal
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás... análisis de información análisis y diseño de sistemas Paoti Rios Reséndiz |
#8
|
||||
|
||||
Creo que confundi a todos, y la verdad es mucho mas facil hacerlo desde codigo, para la integridad referencial hare lo que postearon antes y solo hacerlo con tablas maestro-detalle...
Como dije soy principiante en bases de datos (empecé ayer) y mi error era no saber que no se pueden insertar datos a una tabla sin que existiera ya un registro en la tabla padre. Pense que se podian insertar en la tabla padre e hija al mismo tiempo. gracias de todos modos, seguramente tendre dudas menos tontas la proxima vez :P |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Integridad referencial | silviodp | Tablas planas | 0 | 22-08-2006 23:27:05 |
Integridad Referencial | seara2005 | Firebird e Interbase | 6 | 15-05-2006 06:58:29 |
¿ Integridad referencial ? | Turia | MySQL | 1 | 25-01-2006 13:59:33 |
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 |
|