-
Couldn't load subscription status.
- Fork 1
Trigger
Zhamri Che Ani edited this page Sep 4, 2024
·
2 revisions
Create a Table to Log Changes:
CREATE TABLE update_log (
id INT AUTO_INCREMENT PRIMARY KEY,
matrik_no VARCHAR(20),
column_name VARCHAR(45),
old_value VARCHAR(45),
new_value VARCHAR(45),
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Create a Trigger to Track Changes:
DELIMITER //
CREATE TRIGGER track_updates BEFORE UPDATE ON test_student
FOR EACH ROW
BEGIN
-- Check if std_name is updated
IF OLD.std_name != NEW.std_name THEN
INSERT INTO update_log (matrik_no, column_name, old_value, new_value)
VALUES (NEW.matrik_no, 'std_name', OLD.std_name, NEW.std_name);
END IF;
-- Check if Address is updated
IF OLD.Address != NEW.Address THEN
INSERT INTO update_log (matrik_no, column_name, old_value, new_value)
VALUES (NEW.matrik_no, 'Address', OLD.Address, NEW.Address);
END IF;
-- You can add similar IF statements for other columns as needed
END //
DELIMITER ;SELECT TRIGGER_NAME, EVENT_MANIPULATION, EVENT_OBJECT_TABLE, ACTION_STATEMENT, ACTION_TIMING
FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_SCHEMA = 'apiDB';