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