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 に答える