Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So überprüfen Sie alle Einschränkungen für eine Tabelle in Oracle

Einschränkungen für eine Tabelle in Oracle können mithilfe der folgenden Ansichten ermittelt werden
user_constraints
all_constraints
dba_constraints
User_cons_columns
all_cons_columns
dba_cons_columns

Wir können die Ansicht entsprechend dem Zugriff verwenden, den wir in der Oracle-Datenbank haben. Jetzt werde ich anhand der Beispiele erklären, wie alle Einschränkungen einer Tabelle in Oracle überprüft werden

So finden Sie alle Einschränkungen für eine Tabelle in Oracle

Lassen Sie uns zuerst die Tabellen erstellen

SQL> CREATE TABLE "DEPT"
 ( "DEPTNO" NUMBER(2,0),
  "DNAME" VARCHAR2(14),
  "LOC" VARCHAR2(13),
  CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")
 )  ;
 Table created.
 SQL> CREATE TABLE "EMP"
     ( "EMPNO" NUMBER(4,0),
     "ENAME" VARCHAR2(10) Not null,
      "JOB" VARCHAR2(9) not null,
     "MGR" NUMBER(4,0),
     "HIREDATE" DATE,
     "SAL" NUMBER(7,2),
     "COMM" NUMBER(7,2),
     "DEPTNO" NUMBER(2,0),
      CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO"),
      CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")
      REFERENCES "DEPT" ("DEPTNO") ENABLE
     );
 Table created.

Jetzt können Einschränkungen gefunden werden, indem die folgenden Orakelauswahl-Einschränkungsabfragen verwendet werden

SQL> col CONSTRAINT_NAME  format a20
 SQL> col INDEX_NAME format a20
 SQL> col CONSTRAINT_TYPE format a5
 SQL> column SEARCH_CONDITION format a30
 SQL>column R_CONSTRAINT_NAME format a20
 select CONSTRAINT_NAME  C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME from user_constraints where TABLE_NAME='EMP';

Hier definieren CONSTRAINT_TYPE die Art der Constraints
P steht für Oracle Primary Key
C steht für Check Constraints oder Not Null Constraints
R steht für Foreign Key Constraints
U steht für Unique Key Constraints


Jetzt können die Spalten Primärschlüssel, Fremdschlüssel und Eindeutigkeitsschlüssel mit der folgenden Abfrage gefunden werden

SQL> column OWNER format a10
 SQL> column CONSTRAINT_NAME format a120
 SQL> column CONSTRAINT_NAME format a20
 SQL> column COLUMN_NAME format a20
 SQL> select OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION  from  User_cons_columns where TABLE_NAME='EMP';

Wir erhalten Nullwerte für die Positionsspalte, wenn wir eine einzelne Spalte in der Einschränkung haben. Wenn in den Einschränkungen mehrere Spalten vorhanden sind, gibt Position die Reihenfolge der Spalte in der Einschränkung an

Ähnliche Abfragen können zum Auswählen von Einschränkungen in der DEPT-Tabelle verwendet werden

SQL> select CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME from user_constraints where TABLE_NAME='DEPT';
SQL> select OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION  from  User_cons_columns where TABLE_NAME='DEPT';

So finden Sie Einschränkungen nach Namen in Oracle

select CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME from user_constraints where CONSTRAINT_NAME='&1'

or
select owner, CONSTRAINT_NAME ,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME from all_constraints where CONSTRAINT_NAME='&1'

So überprüfen Sie die Einschränkungen der referenziellen Integrität in der Tabelle

SQL> select CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME from user_constraints where TABLE_NAME='EMP' and CONSTRAINT_TYPE='R' ;

Die übergeordnete Tabelle, auf die verwiesen wird, kann mithilfe von R_CONSTRAINT_NAME

gefunden werden
 SQL>  select CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE,table_name from user_constraints where CONSTRAINT_NAME='PK_DEPT';

So überprüfen Sie den Primärschlüssel in der Tabelle

SQL> select CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE from user_constraints where TABLE_NAME='EMP' and CONSTRAINT_TYPE='P';
 C_NAME      INDEX_NAME           CONST 
 ----         -------             -----
 PK_EMP        PK_EMP               P

Abfrage, um eindeutige Einschränkungen für eine Tabelle in Oracle zu finden

SQL> CREATE TABLE DEPT_MASTER (
     dept_nr NUMBER UNIQUE,
     dept_name varchar2(100) NOT NULL,
     dept_status NUMBER(1,0) NOT NULL,
       created_at date
         ); 
 Table created.
 SQL> select CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE from   user_constraints where TABLE_NAME='DEPT_MASTER' and CONSTRAINT_TYPE='U';

Andere Abfragen für Einschränkungen

select table_name
 from user_constraints
 where (r_constraint_name) in ( select constraint_name
 from user_constraints
 where table_name = 'T'
 and constraint_type in ( 'P', 'U' ) );

So können wir mithilfe von Datenwörterbuchansichten problemlos alle Einschränkungen für die Tabelle in Oracle finden. Wir können dann jede beliebige Aktion ausführen, z. B. ändern, deaktivieren, löschen, um diese Einschränkungen zu übernehmen. Einschränkungen erzwingen Datenintegritätsregeln in der Oracle-Datenbank und wir müssen vorsichtig sein, wenn wir sie ändern/löschen.

Ich hoffe, Ihnen gefällt dieser Inhalt zum Überprüfen aller Einschränkungen einer Tabelle in einer Oracle-Datenbank. Bitte geben Sie Feedback zu diesem Artikel.

Liest auch
Einschränkung in Oracle löschen:Wir können die Einschränkung in Oracle mit dem Befehl alter table löschen. Wir können Primärschlüssel, Fremdschlüssel, Prüfung, nicht null und eindeutige Einschränkung mit demselben Befehl löschen
Koaleszenzfunktion in Oracle:Die Koaleszenzfunktion in Oracle gibt den ersten Ausdruck zurück, wenn er nicht null ist des Ausdrucks.
Supplemental Logging in Oracle:Supplemental Logging in Oracle ist die zusätzliche Spalteninformation, die für die Rekonstruktion von SQL erforderlich ist, um sie auf jede andere Datenbank anzuwenden.
Abfrage zum Auffinden von Objektabhängigkeiten in Oracle:Check out for Query to find Objektabhängigkeiten in Oracle, Abhängigkeit auf untergeordneter Ebene, Abhängigkeit auf übergeordneter Ebene, Finden mit dbms_utility.get_dependency
JSON in Oracle-Datenbank:Sehen Sie sich diesen Beitrag an, um zu erfahren, wie Sie JSON in Oracle verwenden, wie Sie eine Tabelle mit JSON-Daten erstellen, wie Fügen Sie zum Extrahieren die JSON-Daten in Oracle
https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm

ein

Empfohlene Kurse

Hier ist der nette Udemy-Kurs für Oracle SQL
Oracle-Sql-Schritt-für-Schritt :Dieser Kurs behandelt grundlegendes SQL, Joins, Erstellen von Tabellen und Ändern ihrer Struktur, Erstellen von Ansichten, Union, Union -all und vieles mehr . Ein großartiger Kurs und ein Muss für SQL-Einsteiger
Der vollständige Oracle SQL-Zertifizierungskurs :Dies ist ein guter Kurs für alle, die für SQL-Entwicklerfähigkeiten einsatzbereit werden möchten. Ein gut erklärter Kurs
Oracle SQL Developer:Grundlagen, Tipps und Tricks :Das Oracle Sql-Entwicklertool wird von vielen Entwicklern verwendet. Dieser Kurs gibt uns Tricks und Lektionen, wie man es effektiv nutzt und ein produktiver SQL-Entwickler wird
Oracle SQL Performance Tuning Masterclass 2020 :Leistungsoptimierung ist eine der kritischsten und gefragtesten Fähigkeiten. Dies ist ein guter Kurs, um mehr darüber zu erfahren und mit der Optimierung der SQL-Leistung zu beginnen