Oracle/PLSQL: mensaje de error ORA-02270

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Oracle/PLSQL: mensaje de error ORA-02270

Aprenda por qué y cómo resolver los mensajes de error ORA-02270 en Oracle.

describir

Cuando encuentra un error ORA-02270, aparece el siguiente mensaje de error:

  • ORA-02270: ninguna clave primaria o única coincidente para esta lista de columnas

razón

Intentó hacer referencia a una tabla usando una clave principal o única, pero la columna que enumeró no coincide con la clave principal o no existe una clave principal para esta tabla.

resolver

Las opciones para resolver este error de Oracle incluyen:

Opción 1

Este error generalmente ocurre cuando intenta crear una clave externa que hace referencia a una tabla que no tiene una clave principal. Para resolver este problema, cree una clave principal en la tabla a la que se hace referencia. Luego vuelva a ejecutar su comando para crear la clave externa.

Por ejemplo, si intenta ejecutar el siguiente comando.

CREATE TABLE supplier
( supplier_id numeric(10) not null,
  supplier_name varchar2(50) not null,
  contact_name varchar2(50)
);

CREATE TABLE products
( product_id numeric(10) not null,
  supplier_id numeric(10) not null,
  CONSTRAINT fk_supplier
    FOREIGN KEY (supplier_id)
    REFERENCES supplier (supplier_id)
);

Recibirá el siguiente mensaje de error:

Dado que no hay una clave principal en la tabla Proveedores, no puede crear una clave externa en la tabla Productos que haga referencia a la tabla Proveedores.

Puede corregir este error agregando una clave principal a la tabla de proveedores de la siguiente manera y luego vuelva a ejecutar la instrucción CREATE TABLE para la tabla de productos:

ALTER TABLE supplier
 ADD CONSTRAINT supplier_pk PRIMARY KEY (supplier_id);
(Visited 6 times, 1 visits today)