ORA-02270
Error: ORA-02270: no matching unique or primary key for this column-listCausa: An attempt was made to reference a unique or primary key in a table with a CREATE or ALTER TABLE statement when no such key exists in the referenced table.
Acción: Add the unique or primary key to the table or find the correct names of the columns with the primary or unique key, and try again.
COMENTARIOS:
por DaEnVa | 17/08/2009 15:27:20
RE: ORA-02270
Tambien te puede dar este error porque quieres relacionar dos tablas en forma inversa, o sea lo normal es maestro (Encabezado) -> Detalle, y tu lo quieres hacer del Detalle al Encabezado, queriendo decir que el detalle es el encabezado y eso no puede ser.
por df | 05/10/2010 11:00:56
RE: ORA-02270
ORA-02270: no hay ninguna clave única o primaria correspondiente para esta lista de columnas
por chechomancr | 10/04/2011 01:46:09
RE: ORA-02270
Hola, no eh podido solucionarlo:
tengo los siguientes datos:
CREATE TABLE UTN_CENTRO_SALUD(
COD_CENTRO_SALUD NUMBER (6,0) NOT NULL ,
DSC_CENTRO_SALUD VARCHAR2(25) NOT NULL,
ACTIVO NUMBER(1,0) DEFAULT 1 CHECK (ACTIVO IN (0,1)) );
ALTER TABLE UTN_CENTRO_SALUD ADD CONSTRAINT CENTRO_SALUD_PK PRIMARY KEY(COD_CENTRO_SALUD, DSC_CENTRO_SALUD);
CREATE TABLE UTN_ESPECIALIDAD_CS(
COD_ESPECIALIDAD_CS NUMBER(8,0) NOT NULL , /* CONSECUTIVO: 1,2,3... LA TAREA ES QUE NO SE REPITA. */
COD_CENTRO_SALUD NUMBER (6,0) UNIQUE NOT NULL , /* CENTRO DE SALUD */
COD_ESPECIALIDAD NUMBER(3,0) NOT NULL ,
COD_SERVICIO NUMBER(2,0) NOT NULL ,
TIP_SERVICIO NUMBER(1,0) NOT NULL ,
TIP_SEXO CHAR(1) NOT NULL ,
TIP_IMPRESION_HORA NUMBER(3,0) NOT NULL , /* DOS TIPOS HORA EXACTA /0/ Y HARA EN PUNTO /1/ */
ACTIVO NUMBER(1,0) DEFAULT 1 CHECK (ACTIVO IN (0,1)) );
ALTER TABLE UTN_ESPECIALIDAD_CS ADD CONSTRAINT ESPECIALIDAD_CS_PK PRIMARY KEY (COD_ESPECIALIDAD_CS);
ALTER TABLE UTN_ESPECIALIDAD_CS ADD CONSTRAINT ESP_CS_A_FK FOREIGN KEY(COD_CENTRO_SALUD)
REFERENCES UTN_CENTRO_SALUD(COD_CENTRO_SALUD);
ALTER TABLE UTN_ESPECIALIDAD_CS ADD CONSTRAINT ESP_CS_B_FK FOREIGN KEY(COD_ESPECIALIDAD, COD_SERVICIO, TIP_SERVICIO)
REFERENCES UTN_ESPECIALIDAD(COD_ESPECIALIDAD,COD_SERVICIO, TIP_SERVICIO);
el error ocurre al hacer el FK:
ALTER TABLE UTN_ESPECIALIDAD_CS ADD CONSTRAINT ESP_CS_A_FK FOREIGN KEY(COD_CENTRO_SALUD)
REFERENCES UTN_CENTRO_SALUD(COD_CENTRO_SALUD);
y no eh podido solucionarlo
por David Sánchez | 11/04/2011 08:43:01
RE: ORA-02270
Hola chechomancr .
Una foreign key necesita ser apuntada a una primary key de otra tabla. En tu caso, apunta a UTN_CENTRO_SALUD.COD_CENTRO_SALUD . Pero si miras la primary key de esta tabla verás que es una primary key compuesta (COD_CENTRO_SALUD, DSC_CENTRO_SALUD).
Las dos posibles soluciones son o bien que en la primera tabla la primary key sea sólo COD_CENTRO_SALUD o bien en la tabla UTN_ESPECIALIDAD_CS , incluir también el campo DSC_CENTRO_SALUD y hacer una foreign que incluya los dos campos hacia la primera tabla.
Espero haberte ayudado.


