Oracle/PLSQL: mensaje de error ORA-02268

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-02268

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

describir

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

  • ORA-02268: la tabla a la que se hace referencia no tiene clave principal

razón

Intenta hacer referencia a una tabla con una clave única o principal.

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
);

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);