![]() |
problema al crear clave foranea
Buenas, aqui estoy de nuevo, molestando un poco. Estoy enredando un poco mas con el firebird gracias a vosotros ;).
Problema para crear una tabla no tengo, pero quiero al crear una tabla nueva meterle clave foranea porque, tal y como estoy viendo, funciona igual que la primary key, es decir, se puede buscar todos los registros que cumplan la condicion. Imagino que esto se puede hacer con un query que filtre, pero supongo que la foreign key valdra para algo a la hora de no tener que recorrer todo la tabla buscando. Corregidme si me equivoco. Estuve dando vueltas por el foro buscando el tema de foranea pero lo que he visto no me ha aclarado las ideas. gracias por la comprension ;) editado: Estoy haciendo esto pero no me agarra nucliente es el nombre que le estoy dando al index y ncliente es un campo de la tabla historial que quiero usar como foraneo. |
Saludos.
A manera de consejo busca referencia sobre la normalización de BD para que entiendas mejor el concepto de clave foránea. La clave foránea consiste básicamente en mantener una integridad de los datos. Un ejemplo:
Digamos que TIPO_ID es clave primaria de la tabla TIPO_CLIENTE.
Digamos que CLIENTE_ID es tu clave primaria de CLIENTE, si te fijas ahora tengo el campo TIPO_CLIENTE y es NOT NULL (condición para ser clave foránea) igual como esta en la tabla TIPO_CLIENTE. Ahora sí puedes definir la clave foránea en la tabla CLIENTE utilizando el campo TIPO_ID de la misma con la tabla TIPO_CLIENTE en su campo TIPO_ID (que es clave primaria, otro requisito). Con esto estas poniendo una restricción de que los valores del campo TIPO_ID en la tabla CLIENTE deben de existir primero en la tabla TIPO_CLIENTE. Espero haberte ayudado. Hasta luego. |
Hola
Estoy teniendo un grave problema al no poder definir la clave foranea de una tabla. Ésta tiene dos campos que conforman un índice y apuntan a otra tabla que tiene los mismos dos campos de clave primaria.... He tenido en cuenta todo lo aquí explicado pero me encuentro con el siguiente error: http://img410.imageshack.us/img410/130/ibnh6.jpg ayuda por favor? |
ya lo solucione hice lo siguiente:
creé una nueva tabla con los mismos campos, y ahi no hubo problema en la creación de la clave foránea, me queda la duda de porp qué antes no funcionaba.... :confused: siempre me pasan cosas como estas :mad: |
ah, cabe destacar que tanto en la antigua como en la nueva tabla no había registros.... en la tabla "apuntada" si los había... no es que había registros que no coincidan.... en fin
|
La franja horaria es GMT +2. Ahora son las 00:06:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi