Có cách nào để thực sự lấy tên cột đã được cập nhật để sử dụng nó trong trình kích hoạt không?Nhận tên cột được cập nhật hiện tại để sử dụng trong trình kích hoạt
Về cơ bản tôi đang cố gắng để có một đường mòn kiểm toán bất cứ khi nào một chèn sử dụng hoặc cập nhật một bảng (trong trường hợp này nó đã làm với một bảng Liên hệ)
CREATE TRIGGER `after_update_contact`
AFTER UPDATE ON `contact` FOR EACH ROW
BEGIN
INSERT INTO user_audit (id_user, even_date, table_name, record_id, field_name, old_value, new_value)
VALUES (NEW.updatedby, NEW.lastUpdate, 'contact', NEW.id_contact, [...])
END
Làm thế nào tôi có thể nhận được tên của cột đã được cập nhật và từ đó nhận được các giá trị OLD
và NEW
của cột đó. Nếu nhiều cột đã được cập nhật trong một hàng hoặc thậm chí nhiều hàng thì có thể có kiểm tra cho từng cập nhật không?
Trừ khi tôi hiểu lầm những gì bạn có nghĩa là tôi không hoàn toàn chắc chắn làm thế nào mà giúp tôi, tôi không biết trước những gì cột đang được cập nhật vì vậy tôi không thể hardcode nó trong kích hoạt. Tôi cần tìm hiểu cột nào đã được cập nhật và chèn tên của nó vào bảng kiểm toán. – Serge
Vì vậy, bạn phải kiểm tra tất cả các cột. Như tôi đã nói với bạn, các trình kích hoạt khá hạn chế trong MySQL. –
Tôi sợ điều đó ... Vì vậy, nếu bảng của tôi có 5 cột, tôi sẽ cần phải sử dụng nếu báo cáo cũng như một INSERT cho mỗi cột để kiểm toán mỗi cột cập nhật? – Serge