ORACLE - ORA-02449

ORA-02449: unique/primary keys in table referenced by foreign keys
FUNDAMENTOS
Cuando la clave primaria de una tabla A está siendo referenciada por una clave foránea de una tabla B, entonces no puedes eliminar la tabla A.
CASO
A continuación tienes un caso ilustrativo:
SQL> drop table empleado purge;
drop table empleado purge
           *
ERROR en lÝnea 1:
ORA-02449: unique/primary keys in table referenced by foreign keys
ENCONTRANDO LAS TABLAS RELACIONADAS
Cuando tienes muchas tablas en tu esquema, y no recuerdas cuales son esas tablas que te impiden eliminar una tabla, necesitas una consulta que te permita encontrar esas tablas que te generan el problema y analizar el caso.
A continuación tienes la consulta que te puede ayudar:
SELECT B.TABLE_NAME, B.CONSTRAINT_NAME, B.CONSTRAINT_TYPE, A.COLUMN_NAME
  FROM USER_CONS_COLUMNS A
  JOIN USER_CONSTRAINTS B
    ON B.R_OWNER = A.OWNER
   AND B.R_CONSTRAINT_NAME = A.CONSTRAINT_NAME
   AND B.CONSTRAINT_TYPE = 'R'
 WHERE A.TABLE_NAME = 'NOMBRE_TABLA';
Debes reemplazar NOMBRE_TABLA por el nombre de la tabla que quieres eliminar. De esta manera puedes identificar las tablas relacionadas que aún no has eliminado.
CASO - CONTINUACIÓN
A continuación tienes un caso ilustrativo:
SQL> SELECT B.TABLE_NAME, B.CONSTRAINT_NAME, B.CONSTRAINT_TYPE, A.COLUMN_NAME
  2    FROM USER_CONS_COLUMNS A
  3    JOIN USER_CONSTRAINTS B
  4      ON B.R_OWNER = A.OWNER
  5     AND B.R_CONSTRAINT_NAME = A.CONSTRAINT_NAME
  6     AND B.CONSTRAINT_TYPE = 'R'
  7   WHERE A.TABLE_NAME = 'EMPLEADO';

TABLE_NAME      CONSTRAINT_NAME                CONSTRAINT_TYPE    COLUMN_NAME
--------------- ------------------------------ ------------------ --------------------
ASIGNADO        FK_ASIGNADO_EMPLEADO           R                  CHR_EMPLCODIGO
CUENTA          FK_CUENTE_EMPLEADO             R                  CHR_EMPLCODIGO
MOVIMIENTO      FK_MOVIMIENTO_EMPLEADO         R                  CHR_EMPLCODIGO
En este caso, existen 3 tablas que tienes claves foráneas que estan haciendo referencia a la tabla EMPLEADO.
CODIGO FUENTE - EUREKA-WEB-MYSQL-SPRING
En esta sección te presento un video de una aplicación web desarrollada SPRING FRAMEWORK y MYSQL.
Tú tienes acceso al código fuente de esta aplicación, después del video tienes el enlace.



No hay comentarios:

Publicar un comentario