SQLデータベースでデータを安全に管理するためには、削除されたデータの履歴を追跡する仕組みが重要です。本記事では、SQLでログを使用して削除されたデータの履歴をどのように追跡するかについて詳しく説明します。
目次
はじめに
SQLデータベースでデータが削除された際、その削除されたデータを追跡する方法はいくつか存在します。特に、業務で使用されるデータベースでは、不正アクセスや誤操作によるデータロスが許されないため、追跡が必須となります。
必要な準備
テーブルの作成
まずは、テスト用のテーブルを作成します。以下のSQLコマンドで、`employees`テーブルと`logs`テーブルを作成します。
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
position VARCHAR(50)
);
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
action VARCHAR(50),
table_name VARCHAR(50),
record_id INT,
deleted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
トリガーの設定
次に、削除操作が行われたときにログを自動で保存するトリガーを設定します。
DELIMITER //
CREATE TRIGGER after_employee_delete
AFTER DELETE ON employees
FOR EACH ROW
BEGIN
INSERT INTO logs (action, table_name, record_id) VALUES ('DELETE', 'employees', OLD.id);
END;
//
DELIMITER ;
ログの活用方法
削除操作とログの記録
具体的な削除操作を行い、その後でログがどのように記録されるかを見てみましょう。
DELETE FROM employees WHERE id = 1;
この操作後、`logs`テーブルを確認すると、新しいレコードが追加されているはずです。
履歴の確認
削除されたデータの履歴を追跡するためには、`logs`テーブルを参照します。
SELECT * FROM logs WHERE table_name = 'employees';
id | action | table_name | record_id | deleted_at |
---|---|---|---|---|
1 | DELETE | employees | 1 | 2023-10-20 12:34:56 |
まとめ
SQLでログを使用して削除されたデータの履歴を追跡する方法について説明しました。`logs`テーブルとトリガーを設定することで、削除されたデータの履歴を簡単に追跡することができます。これにより、データの安全性が高まり、問題が発生した場合の迅速な対応が可能となります。
created by Rinker
¥4,554
(2024/11/25 11:07:48時点 Amazon調べ-詳細)
コメント