Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara membuat Pemicu untuk menambahkan peristiwa perubahan ke dalam tabel Log Audit

Saya dapat memberi Anda semacam algoritme untuk dikerjakan, sebagian besar pekerjaan dasar sudah selesai:

Ini bisa menjadi tabel audit Anda, harus menambahkan kolom stempel waktu sebagai tanggal modifikasi atau info lebih lanjut sesuai kebutuhan Anda:

CREATE TABLE audit (
     old_data VARCHAR(100),
     new_data VARCHAR(100),
     tbl_name VARCHAR(100)
)
|

Ini dapat digunakan sebagai pemicu referensi; perhatikan bahwa akan ada pemicu terpisah untuk setiap tabel:

CREATE TRIGGER testtrigger BEFORE UPDATE ON <table_name>
  FOR EACH ROW BEGIN
    INSERT INTO audit(old_data, new_data, tbl_name) VALUES (OLD.first_name, NEW.first_name, "testtable");
  END;
|

Anda dapat memiliki beberapa pernyataan sisipkan satu untuk setiap kolom. Jika Anda ingin memberi batasan untuk tidak memasukkan data yang tidak diubah, Anda dapat melakukan perubahan berikut pada pemicu:

IF(OLD.column_name <> NEW.column_name) THEN
    --Your insert query here
ELSE
    --NOOP
END IF;

Beri tahu jika informasi lebih lanjut diperlukan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql tidak dapat terhubung - Akses ditolak (menggunakan kata sandi ya)

  2. Bagaimana cara mengonversi kolom ke ASCII dengan cepat tanpa menyimpan untuk memeriksa kecocokan dengan string ASCII eksternal?

  3. Lokasi terdekat dengan garis lintang dan garis bujur

  4. Hubungkan Dengan Setara Sebelumnya untuk MySQL

  5. Neo4j - Buat Hubungan menggunakan Cypher