Une Contrainte d'intégrité CHECK nécessite et impose une condition simple ou complexe pour chaque ligne de la
table.
La condition d'une contrainte CHECK a les limitations suivantes:
• doit être une expression booléenne qui peut être évalué selon les valeurs de la ligne insérée ou mise à jour.
• ne peut pas contenir des sous-requêtes.
• ne peut pas inclure SYSDATE, UID, USER, ou USERENV.
Avec le résultat de cette requête, nous allons pouvoir désactiver toutes les une Contrainte d'intégrité CHECK d'une table.
Rappel : On désactive une contrainte avec un ALTER TABLE "table_name" DISABLE CONSTRAINT "constraint_name";
SQL> SQL> SELECT TABLE_NAME, 2 CONSTRAINT_NAME, 3 STATUS, 4 CONSTRAINT_TYPE 5 FROM ALL_CONSTRAINTS 6 WHERE CONSTRAINT_TYPE = 'C' 7 AND OWNER = UPPER ('SCOTT') 8 AND TABLE_NAME = UPPER ('ANALYSE') 9 AND STATUS = 'ENABLED'; TABLE_NAME CONSTRAINT_NAME STATUS C ------------------------------ ------------------------------ -------- - ANALYSE SYS_C0013527 ENABLED C ANALYSE CHECK_A_PRE ENABLED C ANALYSE CHECK_VER_PRE ENABLED C ANALYSE CHECK_ANA_E_PR ENABLED C ANALYSE CHECK_ANA_VAL_REC ENABLED C 10 rows selected. SQL> |
SQL> SQL> SELECT 'ALTER TABLE "' 2 || table_name 3 || '" DISABLE CONSTRAINT "' 4 || constraint_name 5 || '";' "CHECK CONSTRAINTS A DESACTIVER" 6 FROM all_constraints a 7 WHERE constraint_type = 'C' 8 AND owner = UPPER ('SCOTT') 9 AND table_name = UPPER ('ANALYSE') 10 AND status = 'ENABLED'; CHECK CONSTRAINTS A DESACTIVER -------------------------------------------------------------------- ALTER TABLE "ANALYSE" DISABLE CONSTRAINT "SYS_C0013527"; ALTER TABLE "ANALYSE" DISABLE CONSTRAINT "CHECK_A_PRE"; ALTER TABLE "ANALYSE" DISABLE CONSTRAINT "CHECK_VER_PRE"; ALTER TABLE "ANALYSE" DISABLE CONSTRAINT "CHECK_ANA_E_PR"; ALTER TABLE "ANALYSE" DISABLE CONSTRAINT "CHECK_ANA_VAL_REC"; 10 rows selected. SQL> |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
| • Script désactivation clés étrangères (FK) référençant une table |