5

我有一个可以从不同 API 访问的 MySQL 表。我想记录从该表中删除任何行的时间。这可能吗?

4

3 回答 3

6

是的,您可以使用简单的触发器,例如;

CREATE TRIGGER data_delete BEFORE DELETE ON data FOR EACH ROW
BEGIN
  INSERT INTO log(logmessage) VALUES (CONCAT('Delete of value ', OLD.id));
END

一个简单的 SQLfiddle 演示

于 2013-10-07T10:48:20.843 回答
1

对的,这是可能的。为此,您必须使用触发器。使用触发器,您可以在删除发生后保存数据、时间和其他信息。

于 2013-10-07T10:40:39.153 回答
0

我有类似的需求,我的解决方案基于 Joachim Isaksson 的解决方案,但必须在前后添加 DELIMITER 行。

CREATE TABLE log_user_table (old_user_id VARCHAR(20), old_user_email VARCHAR(20), when_deleted DATE);
DELIMITER //
CREATE TRIGGER user_delete BEFORE DELETE ON user FOR EACH ROW BEGIN
INSERT INTO log_user_table(old_user_id,old_user_email,when_deleted) VALUES (OLD.id,OLD.email,NOW());
END;//
DELIMITER ;
于 2016-09-27T19:03:02.910 回答