Buenos días:

El problema es precisamente ese.

Teóricamente se puede crear una Foreign Key tanto sobre una Primary Key como sobre un Unique Index y es ahí donde está el problema. Si lo hago sobre la Primary Key funciona sin problemas pero cuando lo hago sobre los campos de un Unique Index me da el error que reporto.

Se supone que tu puedes crear tantos Unique Index en una tabla como te parezca (es un decir) y luego hacer referencia a ellos con Foreign key desde otras tablas.

¿Es un fallo del sistema de gestión de base de datos?

Gracias,
Jorge Merino.


Carmen Calderón Farfán escribió:
Al crear la tabla puedes poner la instrucción primary key al lado del campo, por ejemplo:
 
Create Table jjincid.cabecera (                              
   Campo1    Numeric(5, 0)       Not Null,                   
   Campo2    Numeric(4, 0)       Not Null,                   
   Campo3    Numeric(3, 0)       Not Null Primary Key);
 
Luego de crear la tabla con su primary key puedes crear el constraint unique sobre campos que no se repitan en la tabla sino te da error porque entonces tu data no tiene registros únicos.
 
Prueba lo anterior y luego tu sentencia de detalle.


De: [email protected] [mailto:[email protected]] En nombre de [email protected]
Enviado el: Viernes, 19 de Marzo de 2010 07:23
Para: forum.help400
Asunto: Duda Foreign Key

Buenos días:

Según tengo entendido una Foreign Key se puede indicar sobre una Primary Key o sobre un Unique Index pero las siguientes instrucciones me dan error:

Create Table jjincid.cabecera (                              
   Campo1    Numeric(5, 0)       Not Null,                   
   Campo2    Numeric(4, 0)       Not Null,                   
   Campo3    Numeric(3, 0)       Not Null,                   
                                                             
   Primary Key(Campo3 )                                      
);                                                           
                                                             
Create Unique Index jjincid.cabeceraX1 On jjincid.cabecera   
  (Campo1, Campo2);                                          
                                                             
Create Table jjincid.detalle  (                              
   Campo1    Numeric(5, 0)       Not Null,                   
   Campo2    Numeric(4, 0)       Not Null,                   
   Campo3    Numeric(3, 0)       Not Null,                   
                                                             
   Foreign Key (Campo1, Campo2)                              
      References jjincid.cabecera                            
        (Campo1, Campo2),                                    
                          
   Primary Key(Campo3 )   

);              

Y el error es:

SQL0573  30      12  Posición 2 Tabla DETALLE en JJINCID no tiene una clave
                                 padre coincidente.             
                       
         
Estamos en versión 5R4 y bastante bien de PTF's.

Gracias,
Jorge Merino


____________________________________________________ © Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es ---------------------------------------------------- Para darte de baja visita la siguente URL: http://listas.combios.es/mailman/listinfo/forum.help400


--
Untitled Document

Jorge Merino
e-mail: [email protected]



Tél: 971 467 912
Fax: 971 770 751



Este mensaje se dirige exclusivamente a su destinatario y puede contener información privilegiada o confidencial y/o datos de carácter personal, cuya difusión está regulada por la Ley Orgánica de Protección de Datos y la Ley de Servicios de la Sociedad de la Información. Si usted no es el destinatario indicado (o el responsable de la entrega al mismo), no debe copiar o entregar este mensaje a terceros bajo ningún concepto. Si ha recibido este mensaje por error o lo ha conseguido por otros medios, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su eliminación irreversible. Las opiniones, conclusiones y demás información incluida en este mensaje que no estén relacionadas con asuntos profesionales de nuestra empresa no están respaldadas por la misma.
This message goes exclusively to his addressee and can contain privileged or confidential information and / or information of personal character, which diffusion is regulated by the Organic Law of Protection of Information and the Law of Services of the Society of the Information. If you are not the addressee indicated (or the person in charge of the delivery to the same one), it must not copy or deliver this message to third under any concept. If it has got this message for mistake or has obtained it for other means, we ask him to communicate it to us immediately for the same route and to proceed to his irreversible elimination. The opinions, conclusions and other information included in this message that are not related to professional matters of our company are not endorsed.

____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a