Oracle
 sql >> Base de données >  >> RDS >> Oracle

comment vérifier toutes les contraintes sur une table dans oracle

Les contraintes sur une table dans Oracle peuvent être trouvées à l'aide des vues ci-dessous
user_constraints
all_constraints
dba_constraints
User_cons_columns
all_cons_columns
dba_cons_columns

Nous pouvons utiliser la vue en fonction de l'accès dont nous disposons dans la base de données Oracle. Maintenant, je vais vous expliquer comment vérifier toutes les contraintes sur une table dans Oracle en utilisant les exemples

Comment trouver toutes les contraintes sur une table dans Oracle

Commençons par créer les tables

SQL> CREATE TABLE "DEPT" ( "DEPTNO" NUMBER(2,0), "DNAME" VARCHAR2(14), "LOC" VARCHAR2(13), CONTRAINTE "PK_DEPT" PRIMARY KEY ("DEPTNO") ); Tableau créé. SQL> CREATE TABLE "EMP" ( "EMPNO" NUMBER(4,0), "ENAME" VARCHAR2(10) Non nul, "JOB" VARCHAR2(9) non nul, "MGR" NUMBER(4,0), "HIREDATE " DATE, "SAL" NUMERO(7,2), "COMM" NUMERO(7,2), "DEPTNO" NUMERO(2,0), CONTRAINTE "PK_EMP" CLE PRIMAIRE ("EMPNO"), CONTRAINTE "FK_DEPTNO" ETRANGER CLÉ ("DEPTNO") RÉFÉRENCES "DEPT" ("DEPTNO") ACTIVER ); Tableau créé.

Désormais, les contraintes peuvent être trouvées à l'aide des requêtes de contrainte oracle select ci-dessous

SQL> col CONSTRAINT_NAME format a20 SQL> col INDEX_NAME format a20 SQL> col CONSTRAINT_TYPE format a5 SQL> colonne SEARCH_CONDITION format a30 SQL>colonne 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';

Ici, CONSTRAINT_TYPE définit le type de contraintes
P signifie clé primaire Oracle
C signifie contraintes de vérification ou contraintes non nulles
R signifie contraintes de clé étrangère
U signifie contraintes de clé unique


Désormais, les colonnes de contraintes de clé primaire, de clé étrangère et de clé unique peuvent être trouvées à l'aide de la requête ci-dessous

SQL> colonne OWNER format a10 SQL> colonne CONSTRAINT_NAME format a120 SQL> colonne CONSTRAINT_NAME format a20 SQL> colonne COLUMN_NAME format a20 SQL> sélectionnez OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION from User_cons_columns where TABLE_NAME='EMP';

Nous obtiendrons des valeurs nulles pour la colonne Position si nous avons une seule colonne dans la contrainte. S'il y a plusieurs colonnes présentes dans les contraintes, Position spécifiera l'ordre de la colonne dans la contrainte

Des requêtes similaires peuvent être utilisées pour sélectionner des contraintes sur la table DEPT

SQL> sélectionnez CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME parmi user_constraints où TABLE_NAME='DEPT' ;
SQL> sélectionnez OWNER,CONSTRAINT_NAME ,COLUMN_NAME,POSITION from User_cons_columns where TABLE_NAME='DEPT';  

Comment trouver une contrainte par son nom dans Oracle

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

Comment vérifier les contraintes d'intégrité référentielle dans le tableau

SQL> sélectionnez CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE,Search_condition,R_CONSTRAINT_NAME R_NAME parmi user_constraints où TABLE_NAME='EMP' et CONSTRAINT_TYPE='R';

La table parent référencée peut être trouvée en utilisant le R_CONSTRAINT_NAME

 SQL> sélectionnez CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE,table_name dans user_constraints où CONSTRAINT_NAME='PK_DEPT' ;

Comment vérifier la clé primaire dans la table

SQL> sélectionnez CONSTRAINT_NAME C_NAME,INDEX_NAME,CONSTRAINT_TYPE dans user_constraints où TABLE_NAME='EMP' et CONSTRAINT_TYPE='P' ; C_NAME INDEX_NAME CONST ---- ------- ----- PK_EMP PK_EMP P

requête pour trouver des contraintes uniques sur une table dans oracle

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 ); Tableau créé. SQL> sélectionnez CONSTRAINT_NAME,INDEX_NAME,CONSTRAINT_TYPE parmi user_constraints où TABLE_NAME='DEPT_MASTER' et CONSTRAINT_TYPE='U' ;

Autres requêtes pour les contraintes

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

Ainsi, nous pouvons facilement trouver toutes les contraintes sur la table dans Oracle en utilisant les vues du dictionnaire de données. Nous pouvons alors prendre n'importe quelle action comme modifier, désactiver, supprimer, nous voulons assumer ces contraintes. Les contraintes imposent des règles d'intégrité des données dans la base de données Oracle et nous devons être prudents lors de leur modification/suppression.

J'espère que vous aimez ce contenu sur la façon de vérifier toutes les contraintes sur une table dans une base de données oracle. Merci de donner votre avis sur cet article.

Lit également
supprimer la contrainte dans Oracle :nous pouvons supprimer la contrainte dans Oracle à l'aide de la commande alter table. nous pouvons supprimer la clé primaire, la clé étrangère, la vérification, la contrainte non nulle et unique avec la même commande. de l'expression.
Journalisation supplémentaire dans Oracle :la journalisation supplémentaire dans Oracle contient les informations de colonne supplémentaires requises pour reconstruire SQL à appliquer à toute autre base de données
Requête pour rechercher des dépendances d'objet dans Oracle :consultez la requête pour trouver dépendances d'objet dans oracle, dépendance au niveau enfant, dépendance au niveau parent, recherche à l'aide de dbms_utility.get_dependency
JSON dans la base de données Oracle :consultez cet article sur l'utilisation de JSON dans Oracle, comment créer une table contenant des données JSON, comment pour extraire, insérez les données JSON dans oracle
https://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses002.htm

Cours recommandés

Voici le joli cours Udemy pour Oracle SQL
Oracle-Sql-Step-by-step :Ce cours couvre les bases de SQL, les jointures, la création de tables et la modification de sa structure, la création de vues, l'union, l'union -all et bien d'autres choses . Un excellent cours et un cours indispensable pour les débutants SQL
Le cours complet de certification Oracle SQL  :c'est un bon cours pour tous ceux qui veulent être prêts à travailler pour les compétences de développeur SQL. Un cours bien expliqué
Oracle SQL Developer :Essentials, Tips and Tricks  :l'outil de développement Oracle SQL est utilisé par de nombreux développeurs. Ce cours nous donne des astuces et des leçons sur la façon de l'utiliser efficacement et de devenir un développeur sql productif
Oracle SQL Performance Tuning Masterclass 2020  :l'optimisation des performances est l'une des compétences essentielles et les plus recherchées. C'est un bon cours pour en savoir plus et commencer à ajuster les performances SQL