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 Prequê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.htmCours 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