Ja das machst du in etwa so:
Die zusätzliche Log-Table:
Code:
CREATE TABLE table_log (
id INT AUTO_INCREMENT PRIMARY KEY,
aktion VARCHAR(10), -- z. B. 'INSERT', 'UPDATE', 'DELETE'
zeitpunkt DATETIME DEFAULT NOW()
);
Die TRIGGER:
Code:
-- INSERT Trigger
CREATE TRIGGER table_insert AFTER INSERT ON kunden
FOR EACH ROW
BEGIN
INSERT INTO table_log (aktion, zeitpunkt) VALUES ('INSERT', NOW());
END;
-- UPDATE Trigger
CREATE TRIGGER table_update AFTER UPDATE ON kunden
FOR EACH ROW
BEGIN
INSERT INTO lable_log (aktion, zeitpunkt) VALUES ('UPDATE', NOW());
END;
-- DELETE Trigger
CREATE TRIGGER kunden_delete AFTER DELETE ON kunden
FOR EACH ROW
BEGIN
INSERT INTO table_log (aktion, zeitpunkt) VALUES ('DELETE', NOW());
END;
Abfrage der Einträge in Delphi:
Code:
FDQuery.SQL.Text := 'SELECT * FROM table_log ORDER BY zeitpunkt DESC';
FDQuery.Open;
Und entfernen der Einträge in Delphi:
Code:
FDQuery.SQL.Text := 'DELETE FROM table_log';
FDQuery.ExecSQL;
Das musst du entsprechend deiner Anforderung etwas anpassen, aber grundsätzlich ginge das so.