Maison > Article > base de données > Comment modifier les enregistrements de table dans Oracle
La base de données Oracle est actuellement le système de gestion de bases de données relationnelles le plus utilisé au monde. Elle possède des fonctions riches et une configuration flexible. Dans la base de données Oracle, les tables constituent une partie importante du stockage des données. La structure du tableau comprend les noms de colonnes, les types de colonnes, les contraintes, etc. La modification de la structure de la table est une opération de données courante, mais l'opération de modification peut avoir un certain impact sur l'intégrité et la sécurité des données. Par conséquent, une attention particulière doit être portée lors de la modification de la structure du tableau.
Afin d'enregistrer le processus de modification de la structure de la table et d'assurer l'intégrité et la traçabilité des données, la base de données Oracle propose diverses méthodes pour enregistrer les modifications de la table. Cet article présentera les méthodes suivantes pour modifier la table d'enregistrement.
Flashback Table a été lancé dans la version Oracle10g, il nécessite l'autorisation SYSTEM pour s'exécuter. Avant d'exécuter Flashback Table, vous pouvez utiliser l'instruction suivante pour demander quelles tables ont la journalisation activée dans la base de données :
SELECT LOG_MODE FROM V$DATABASE;
Si le résultat de la requête est "ARCHIVELOG", cela signifie que la journalisation est activée dans la base de données.
Lorsque vous utilisez Flashback Table, vous devez faire attention aux points suivants :
Ce qui suit est un exemple de déclencheur qui enregistre l'historique des modifications de la table étudiant :
CREATE TABLE STUDENT_HISTORY ( ID INT PRIMARY KEY, OPERATION_TYPE VARCHAR(10) NOT NULL, OPERATE_TIME DATE NOT NULL, NAME VARCHAR2(50) NOT NULL, AGE INT NOT NULL, SEX VARCHAR2(10) NOT NULL, GRADE VARCHAR2(20) NOT NULL, REMARKS VARCHAR2(100) ); CREATE OR REPLACE TRIGGER STUDENT_HISTORY_TRG BEFORE DELETE OR UPDATE OR INSERT ON STUDENT FOR EACH ROW BEGIN IF DELETING THEN INSERT INTO STUDENT_HISTORY (ID, OPERATION_TYPE, OPERATE_TIME, NAME, AGE, SEX, GRADE, REMARKS) VALUES (:OLD.ID, 'DELETE', SYSDATE, :OLD.NAME, :OLD.AGE, :OLD.SEX, :OLD.GRADE, :OLD.REMARKS); ELSIF UPDATING THEN INSERT INTO STUDENT_HISTORY (ID, OPERATION_TYPE, OPERATE_TIME, NAME, AGE, SEX, GRADE, REMARKS) VALUES (:OLD.ID, 'UPDATE', SYSDATE, :NEW.NAME, :NEW.AGE, :NEW.SEX, :NEW.GRADE, :NEW.REMARKS); ELSIF INSERTING THEN INSERT INTO STUDENT_HISTORY (ID, OPERATION_TYPE, OPERATE_TIME, NAME, AGE, SEX, GRADE, REMARKS) VALUES (:NEW.ID, 'INSERT', SYSDATE, :NEW.NAME, :NEW.AGE, :NEW.SEX, :NEW.GRADE, :NEW.REMARKS); END IF; END;
Ce déclencheur enregistre l'historique des modifications de la table étudiant dans la table STUDENT_HISTORY. Lors de l'exécution d'opérations d'insertion, de mise à jour et de suppression, Trigger enregistrera le type d'opération, la durée de l'opération, le nom de l'étudiant, son âge, son sexe, sa note et ses remarques.
Les avantages de l'utilisation de Trigger pour enregistrer l'historique des modifications sont :
Cependant, l'utilisation de Trigger présente certains inconvénients :
Ce qui suit est une stratégie AUDIT qui enregistre les opérations d'insertion, de mise à jour et de suppression de l'utilisateur sur la table EMPLOYEES :
AUDIT INSERT, UPDATE, DELETE ON EMPLOYEES BY SESSION;
Cette instruction enregistrera les opérations d'insertion, de mise à jour et de suppression de l'utilisateur sur la table EMPLOYEES. PAR SESSION signifie enregistrer l’opération effectuée par quelle session. Vous pouvez utiliser l'instruction suivante pour vérifier l'état activé de l'audit :
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='HR' AND OBJ_NAME='EMPLOYEES';
L'avantage d'utiliser AUDIT pour enregistrer l'historique des modifications de table est :
Cependant, AUDIT a également certaines limites :
Dans le Database Change Management Pack, les utilisateurs peuvent spécifier les objets et les options de stratégie qui doivent être audités et générer des données de suivi des modifications. Il peut également générer automatiquement une documentation et des artefacts sur les modifications et effectuer des audits après chaque modification de la base de données.
Les avantages de l'utilisation du Database Change Management Pack sont les suivants :
Lors de la modification de la structure du tableau, vous devez être très prudent pour éviter d'affecter l'intégrité et la sécurité des données. Si des données importantes sont enregistrées dans la base de données, il est recommandé de sauvegarder les données avant de les modifier. L'enregistrement en temps opportun de l'historique des modifications des tables et la réalisation d'audits sont très efficaces pour garantir l'intégrité et la sécurité des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!