Database Reference
In-Depth Information
Tableau 4-7 : Mises à jour d'une vue
Opérations
Résultat
Ajout.d'une.ligne.dans.la.table.
employees .du.schéma. hr .
INSERT INTO soutou.v_employes
(id_emp, prenom, nom, mail, date_embauche, id_emploi)
VALUES (99,'Fred','Brouard','sqlpro',SYSDATE,'IT_PROG');
Modification.d'une.colonne.d'une.ligne.
dans.la.table. employees .du.schéma.
hr .
UPDATE soutou.v_employes
SET mail = 'WIGIETZ'
WHERE id_emp = 206;
Suppression.de.deux.lignes.dans.la.
table. employees .du.schéma. hr .
DELETE FROM soutou.v_employes
WHERE id_emp IN (150,151);
La première instruction est un peu paradoxale, car elle permet l'ajout, en passant par la vue,
d'un employé qui ne repassera plus par la suite le iltre de la vue (l'information du salaire est
manquante et forme la condition de iltre de la vue).
La.directive. WITH CHECK OPTION ,.qui.empêche.un.ajout.ou.une.modification.non.conforme.
à.la.définition.de.la.vue,.permet.d'éviter.ce.genre.d'effets.de.bord.qui.peuvent.être.indésirables.
pour.l'intégrité.de.la.base..
Contrainte de vériication
Il est nécessaire de redéinir la vue, le tableau suivant décrit cette action et la tentative d'ajout
d'un employé non doté de salaire.
Tableau 4-8 : Vue avec WITH CHECK OPTION
Création de la vue
Insertion interdite
SQL> CREATE VIEW soutou.v_employes
(id_emp, prenom, nom, mail,
date_embauche, id_emploi)
AS SELECT employee_id, irst_name,
last_name, email, hire_date, job_id
FROM hr.employees
WHERE salary > 9000
WITH CHECK OPTION ;
SQL> INSERT INTO soutou.v_employes
(id_emp, prenom, nom, mail,
date_embauche, id_emploi)
VALUES (99, 'Fred', 'Brouard',
'sqlpro', SYSDATE, 'IT_PROG');
ERROR at line 1:
ORA-01402: view WITH CHECK OPTION where-
clause violation
View created.
 
Search WWH ::




Custom Search