Rumah >pangkalan data >Oracle >Bagaimana untuk mengubah suai rekod jadual dalam oracle
Pangkalan data Oracle kini merupakan sistem pengurusan pangkalan data hubungan yang paling banyak digunakan di dunia Ia mempunyai fungsi yang kaya dan konfigurasi yang fleksibel. Dalam pangkalan data Oracle, jadual adalah bahagian penting dalam penyimpanan data. Struktur jadual termasuk nama lajur, jenis lajur, kekangan, dsb. Mengubah suai struktur jadual ialah operasi data biasa, tetapi operasi pengubahsuaian mungkin mempunyai kesan tertentu terhadap integriti dan keselamatan data. Oleh itu, perhatian khusus perlu diberikan apabila mengubah suai struktur meja.
Untuk merekodkan proses pengubahsuaian struktur jadual dan memastikan integriti dan kebolehkesanan data, pangkalan data Oracle menyediakan pelbagai kaedah untuk merekod pengubahsuaian jadual. Artikel ini akan memperkenalkan kaedah berikut untuk mengubah suai jadual rekod.
Flashback Table telah dilancarkan dalam versi Oracle10g, ia memerlukan kebenaran SYSTEM untuk dilaksanakan. Sebelum melaksanakan Jadual Kilas Balik, anda boleh menggunakan pernyataan berikut untuk menanyakan jadual mana yang telah didayakan pengelogan dalam pangkalan data:
SELECT LOG_MODE FROM V$DATABASE;
Jika hasil pertanyaan ialah "ARCHIVELOG", ini bermakna pangkalan data telah didayakan pengelogan.
Apabila menggunakan Jadual Flashback, anda perlu memberi perhatian kepada perkara berikut:
Berikut ialah contoh Pencetus yang merekodkan sejarah pengubahsuaian jadual pelajar:
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;
Pencetus ini merekodkan sejarah pengubahsuaian jadual pelajar ke dalam jadual STUDENT_HISTORY . Apabila melakukan operasi sisip, kemas kini dan padam, Trigger akan merekodkan jenis operasi, masa operasi, nama pelajar, umur, jantina, gred dan ucapan.
Kelebihan menggunakan Trigger untuk merekodkan sejarah pengubahsuaian ialah:
Walau bagaimanapun, terdapat beberapa kelemahan untuk menggunakan Trigger:
Berikut ialah strategi AUDIT yang merekodkan operasi sisipan, kemas kini dan pemadaman pengguna pada jadual PEKERJA:
AUDIT INSERT, UPDATE, DELETE ON EMPLOYEES BY SESSION;
Pernyataan ini akan merekodkan sisipan, kemas kini, pengguna, dan padam operasi pada jadual EMPLOYEES beroperasi. MENGIKUT SESI bermaksud merekodkan operasi yang dilakukan oleh sesi mana. Anda boleh menggunakan pernyataan berikut untuk menyemak status Audit yang didayakan:
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='HR' AND OBJ_NAME='EMPLOYEES';
Kelebihan menggunakan AUDIT untuk merekod sejarah pengubahsuaian jadual ialah:
Walau bagaimanapun, AUDIT juga mempunyai beberapa had:
Dalam Pek Pengurusan Perubahan Pangkalan Data, pengguna boleh menentukan objek dan pilihan dasar yang perlu diaudit dan menjana data penjejakan perubahan. Ia juga boleh menjana dokumentasi dan artifak perubahan secara automatik dan menjalankan audit selepas setiap perubahan pangkalan data.
Kelebihan menggunakan Pek Pengurusan Perubahan Pangkalan Data ialah:
Walau bagaimanapun, Pek Pengurusan Perubahan Pangkalan Data juga mempunyai beberapa kelemahan:
Ringkasan:
Oracle kini merupakan pangkalan data yang paling banyak digunakan di dunia Ia menyediakan pelbagai kaedah untuk merekod sejarah pengubahsuaian jadual, termasuk Jadual Kilas Balik, Pencetus, AUDIT dan Pek Pengurusan Perubahan Pangkalan Data. . Setiap kaedah ini mempunyai kelebihan dan kekurangan, dan pengguna perlu memilih dan menggunakannya mengikut keadaan tertentu.
Apabila mengubah suai struktur jadual, lebih berhati-hati untuk mengelakkan menjejaskan integriti dan keselamatan data. Jika data penting disimpan dalam pangkalan data, adalah disyorkan untuk membuat sandaran data sebelum mengubah suainya. Perekodan sejarah pengubahsuaian jadual tepat pada masanya dan menjalankan audit adalah sangat berkesan dalam memastikan integriti dan keselamatan data.
Atas ialah kandungan terperinci Bagaimana untuk mengubah suai rekod jadual dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!