从MySQL中的给定表中删除行时记录

时间:2013-10-07 10:38:00

标签: mysql

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

3 个答案:

答案 0 :(得分: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

A simple SQLfiddle demo

答案 1 :(得分:1)

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

答案 2 :(得分: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 ;