Mostrar nombres de todas las restricciones para una tabla en Oracle SQL
115
He definido un nombre para cada una de las restricciones para las múltiples tablas que he creado en Oracle SQL.
El problema es que para eliminar una restricción para la columna de una tabla en particular, necesito saber el nombre que he proporcionado para cada restricción, que he olvidado.
¿Cómo enumero todos los nombres de restricciones que he especificado para cada columna de una tabla?
Debe consultar el diccionario de datos , específicamente la USER_CONS_COLUMNSvista para ver las columnas de la tabla y las restricciones correspondientes:
Para su información, a menos que haya creado específicamente su tabla con un nombre en minúscula (usando comillas dobles), entonces el nombre de la tabla estará predeterminado en mayúsculas, así que asegúrese de que sea así en su consulta.
Si luego desea ver más información sobre la propia restricción, consulte la USER_CONSTRAINTSvista:
<el nombre de su tabla> es sensible a mayúsculas y minúsculas, creo; Debería estar en mayúsculas.
Kanagavelu Sugumar
El ownercampo en (user | all | dba) _constraints y (user | all | dba) _cons_columns es el propietario de la restricción, no el propietario de la tabla (según la documentación de Oracle). El propietario de la tabla no es un campo disponible en ninguna de estas vistas. ¿Significa esto que el propietario de la restricción y el propietario de la tabla deben ser el mismo?
Utilice cualquiera de los dos comandos siguientes. Todo debe estar en mayúsculas. El nombre de la tabla debe estar entre comillas:
--SEE THE CONSTRAINTS ON A TABLESELECT COLUMN_NAME, CONSTRAINT_NAME FROM USER_CONS_COLUMNS WHERE TABLE_NAME ='TBL_CUSTOMER';--OR FOR LESS DETAILSELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME ='TBL_CUSTOMER';
USER_CONS_COLUMNS
owner
campo en (user | all | dba) _constraints y (user | all | dba) _cons_columns es el propietario de la restricción, no el propietario de la tabla (según la documentación de Oracle). El propietario de la tabla no es un campo disponible en ninguna de estas vistas. ¿Significa esto que el propietario de la restricción y el propietario de la tabla deben ser el mismo?fuente
tal vez esto pueda ayudar:
salud
fuente
nota: el nombre de la tabla debe estar en mayúsculas.
En caso de que no sepa el nombre de la mesa,
fuente
A menudo, las bases de datos empresariales tienen varios usuarios y no siempre estoy en el correcto:
Elegido de la documentación de Oracle
fuente
Utilice cualquiera de los dos comandos siguientes. Todo debe estar en mayúsculas. El nombre de la tabla debe estar entre comillas:
fuente