Anzeigen der Namen aller Einschränkungen für eine Tabelle in Oracle SQL
115
Ich habe für jede Einschränkung einen Namen für die mehreren Tabellen definiert, die ich in Oracle SQL erstellt habe.
Das Problem ist, dass ich zum Löschen einer Einschränkung für die Spalte einer bestimmten Tabelle den Namen kennen muss, den ich für jede Einschränkung angegeben habe, die ich vergessen habe.
Wie liste ich alle Namen von Einschränkungen auf, die ich für jede Spalte einer Tabelle angegeben habe?
Sie müssen das Datenwörterbuch abfragen , insbesondere die USER_CONS_COLUMNSAnsicht, um die Tabellenspalten und die entsprechenden Einschränkungen anzuzeigen:
SELECT*FROM user_cons_columns
WHERE table_name ='<your table name>';
Zu Ihrer Information: Wenn Sie Ihre Tabelle nicht speziell mit einem Kleinbuchstaben (in doppelten Anführungszeichen) erstellt haben, wird der Tabellenname standardmäßig in Großbuchstaben geschrieben. Stellen Sie daher sicher, dass dies in Ihrer Abfrage der Fall ist.
Wenn Sie dann weitere Informationen zur Einschränkung selbst USER_CONSTRAINTSanzeigen möchten, fragen Sie die Ansicht ab:
<Ihr Tabellenname> unterscheidet zwischen Groß- und Kleinschreibung, denke ich. Es sollte in Großbuchstaben sein.
Kanagavelu Sugumar
Das ownerFeld in den Spalten (user | all | dba) _constraints und (user | all | dba) _cons_columns ist der Eigentümer der Einschränkung und nicht der Eigentümer der Tabelle (gemäß Oracle-Dokumentation). Der Tabellenbesitzer ist in keiner dieser Ansichten ein verfügbares Feld. Bedeutet dies, dass der Einschränkungseigentümer und der Tabellenbesitzer identisch sein müssen?
Verwenden Sie einen der beiden folgenden Befehle. Alles muss in Großbuchstaben geschrieben sein. Der Tabellenname muss in Anführungszeichen gesetzt werden:
--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
Feld in den Spalten (user | all | dba) _constraints und (user | all | dba) _cons_columns ist der Eigentümer der Einschränkung und nicht der Eigentümer der Tabelle (gemäß Oracle-Dokumentation). Der Tabellenbesitzer ist in keiner dieser Ansichten ein verfügbares Feld. Bedeutet dies, dass der Einschränkungseigentümer und der Tabellenbesitzer identisch sein müssen?quelle
Vielleicht kann das helfen:
Prost
quelle
Hinweis: Der Tabellenname sollte in Großbuchstaben angegeben werden.
Falls Sie den Namen der Tabelle dann nicht kennen,
quelle
Oft haben Unternehmensdatenbanken mehrere Benutzer, und ich bin nicht immer auf dem richtigen Weg:
Aus der Oracle-Dokumentation ausgewählt
quelle
Verwenden Sie einen der beiden folgenden Befehle. Alles muss in Großbuchstaben geschrieben sein. Der Tabellenname muss in Anführungszeichen gesetzt werden:
quelle