Problema de eliminación de clave externa sin nombre de Oracle
Si no asigna un nombre a la clave externa en SQL, la base de datos utilizará automáticamente un algoritmo para generar un nombre único
El siguiente ?SQL?se utiliza para?consultar?todo ¿Información de clave externa en?Oracle?
Puede utilizar el nombre de la subtabla para consultar cuál es el nombre de la clave externa generada automáticamente.
Luego podrás eliminarlo.
SELECT USER_CONS_COLUMNS.CONSTRAINT_NAME?AS?Nombre de restricción, USER_CONS_COLUMNS.TABLE_NAME?AS?Nombre de subtabla, USER_CONS_COLUMNS.COLUMN_NAME?AS?Nombre de columna de subtabla, USER_CONS_COLUMNS.POSITION?AS?Posición, USER_INDEXES.TABLE_NAME AS? Nombre de la tabla principal, USER_IND_COLUMNS.COLUMN_NAME?AS?Nombre de la columna de la tabla principal
FROM USER_CONSTRAINTS
JOIN?USER_CONS_COLUMNS
ON?(USER_CONSTRAINTS.CONSTRAINT_NAME
p>=?USER_CONS_COLUMNS.CONSTRAINT_NAME)
UNIRSE?USER_INDEXES
ON?(USER_CONSTRAINTS.R_CONSTRAINT_NAME
=?USER_INDEXES.INDEX_NAME)
UNIRSE?USER_IND_COLUMNS
ON?(USER_INDEXES.INDEX_NAME?=?USER_IND_COLUMNS.INDEX_NAME)
¿DÓNDE CONSTRAINT_TYPE?=?'R';?
En cuanto a cómo eliminar una clave externa, la sintaxis es
ALTER?TABLE nombre de tabla DROP?CONSTRAINT nombre de restricción de clave externa;
¿En cuanto a?
Uso ¿Por qué el contenido especificado no es útil?
Esto se debe a que la sintaxis de Oracle no le permite hacer esto
Así que no puede hacerlo.