Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tạo Trình kích hoạt để thêm các sự kiện thay đổi vào bảng Nhật ký kiểm tra

Tôi có thể cung cấp cho bạn một loại thuật toán để giải quyết, hầu hết các công việc cơ bản đã được thực hiện:

Đây có thể là bảng kiểm tra của bạn, nên thêm cột dấu thời gian làm ngày sửa đổi hoặc thêm thông tin theo yêu cầu của bạn:

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

Điều này có thể được sử dụng như một kích hoạt tham chiếu; lưu ý rằng sẽ có một trình kích hoạt riêng cho mỗi bảng:

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;
|

Bạn có thể có nhiều câu lệnh chèn, một câu lệnh cho mỗi cột. Nếu bạn muốn hạn chế việc không chèn dữ liệu không bị thay đổi, bạn có thể thực hiện thay đổi sau trong trình kích hoạt:

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

Hãy cho biết nếu cần thêm thông tin.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cài đặt MySQL Workbench để quản trị cơ sở dữ liệu

  2. MYSQL Ngày Thời gian Tròn đến Giờ Gần nhất

  3. Xếp hạng MySQL với Trọng lượng

  4. Cách giải quyết không có lỗi GROUP BY trong truy vấn mysql

  5. Với Laravel Migration, Làm cách nào để thay đổi kiểu dữ liệu của một cột và cập nhật dữ liệu hiện có của nó để phù hợp với kiểu dữ liệu mới mà không cần sử dụng các truy vấn SQL thô?