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 |
#9
|
||||
|
||||
Resp
Lo que quieres es tener algo como un historico.
Simplemente usas los disparadores de uan tabala para insertar en la otra ya que la integridad referencial no te va ahacer estas cosas.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
|
|
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 |
|