Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mengubah suai rekod jadual dalam oracle

Bagaimana untuk mengubah suai rekod jadual dalam oracle

PHPz
PHPzasal
2023-04-04 09:14:341525semak imbas

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.

  1. Jadual Kilas Balik Oracle
    Jadual Kilas Balik Oracle ialah ciri lanjutan Oracle yang boleh memulihkan keadaan sejarah jadual atau membuat asal perubahan data pada masa tertentu. Sebelum menggunakan Jadual Flashback, anda perlu mendayakan log Oracle untuk merekodkan pengubahsuaian pada jadual. Apabila melakukan operasi kemas kini atau padam, sistem akan merekodkan data sebelum pengubahsuaian kepada ruang jadual asal. Jadual Kilas Balik boleh menggunakan maklumat buat asal ini untuk melancarkan keadaan jadual kepada keadaan yang sama seperti sebelum pengubahsuaian.

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:

  • Jadual Kilas Balik hanya boleh memulihkan operasi kemas kini dan memadam, tetapi tidak boleh memulihkan pengubahsuaian struktur jadual.
  • Jadual Imbas Kembali menggunakan ruang jadual asal tidak mencukupi, sejarah pengubahsuaian tidak boleh direkodkan.
  • Jadual Kilas Balik tidak boleh memulihkan data yang telah dipadamkan oleh perintah truncate, kerana arahan ini akan mengosongkan ruang jadual asal.
  1. Oracle Trigger
    Oracle Trigger mencetuskan tindakan tertentu sebelum dan selepas jadual dimasukkan, dikemas kini atau dipadamkan. Anda boleh mencipta Pencetus untuk merekodkan sejarah operasi jadual. Dengan mencipta sebelum memasukkan, sebelum kemas kini dan sebelum memadamkan pencetus pada jadual, data sebelum pengubahsuaian direkodkan. Dalam selepas sisipan, selepas kemas kini, dan selepas pemadaman pencetus, data yang diubah suai direkodkan.

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:

  • Trigger boleh merekodkan pengubahsuaian pada struktur jadual, serta memasukkan, mengemas kini, memadam dan operasi lain
  • Pencetus boleh merekodkan Data sebelum dan selepas pengubahsuaian boleh dikesan kembali kepada proses perubahan data
  • Pencetus boleh menyesuaikan kandungan dan kaedah rakaman, yang sangat fleksibel.

Walau bagaimanapun, terdapat beberapa kelemahan untuk menggunakan Trigger:

  • Prigger akan menjejaskan prestasi pangkalan data
  • Perlu menulis kod PL/SQL yang kompleks, jika kod Masalah boleh menjejaskan integriti data.
  1. AUDIT Oracle
    AUDIT Oracle ialah fungsi audit peringkat pangkalan data yang boleh merekodkan sejarah operasi pengguna pangkalan data. Ciri AUDIT termasuk treler audit global dan pelbagai pilihan dasar. Pengguna boleh mengawal tingkah laku pengelogan dengan menetapkan pilihan dasar. AUDIT telah dibina ke dalam pangkalan data Oracle dan tidak memerlukan pemasangan tambahan.

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:

  • Audit boleh merekodkan pengguna global sejarah operasi pangkalan data, termasuk jadual Pengubahsuaian struktur, sisipan, kemas kini, padam dan operasi lain
  • boleh mengekstrak dan menganalisis data audit dengan mudah
  • tidak memerlukan penulisan kod tambahan;

Walau bagaimanapun, AUDIT juga mempunyai beberapa had:

  • AUDIT dilaksanakan di peringkat pangkalan data, jadi ia tidak boleh merekodkan proses pelaksanaan pernyataan SQL; >AUDIT berguna untuk merekod Format data adalah terhad dan tidak cukup fleksibel
  • AUDIT akan memberi kesan tertentu ke atas prestasi pangkalan data.
Pek Pengurusan Perubahan Pangkalan Data Oracle
    Pek Pengurusan Perubahan Pangkalan Data Oracle ialah alat pengurusan pangkalan data boleh pasang yang boleh mengurus dan mengaudit perubahan pangkalan data. Pek Pengurusan Perubahan Pangkalan Data menjana dan menyimpan dokumentasi perubahan berkualiti tinggi, maklumat jejak audit dan laporan perubahan.

  1. Pek Pengurusan Perubahan Pangkalan Data membolehkan pengguna mendapat gambaran lengkap status perubahan pangkalan data, termasuk:
  • Sejarah perubahan objek pangkalan data;
  • Identiti orang yang mengubah suainya dan masa dan tarikh operasi
  • Dokumen dan artifak yang diubah.

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:

  • Pek Pengurusan Perubahan Pangkalan Data boleh merekod semua perubahan pangkalan data, termasuk operasi DDL dan pengubahsuaian data
  • boleh menjana perubahan Dokumen dan laporan audit memudahkan audit keselamatan dan penyelesaian masalah
  • secara automatik boleh mengesan penyeragaman dan kesempurnaan perubahan pangkalan data.

Walau bagaimanapun, Pek Pengurusan Perubahan Pangkalan Data juga mempunyai beberapa kelemahan:

  • memerlukan pembelian tambahan dan kosnya lebih tinggi
  • memerlukan jumlah tertentu; masa dan usaha.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn