sqlite3 で更新時に更新日時、削除時に連鎖削除のトリガー

sqlite3 で更新時に更新日時、削除時に連鎖削除のトリガーをメモ

▼更新時に updated_at へローカル時刻を保存
CREATE TRIGGER トリガー名 AFTER UPDATE ON 対象テーブル
BEGIN
    UPDATE 対象テーブル
    SET updated_at = DATETIME('now', 'localtime')
    WHERE rowid == NEW.rowid;
END

▼親テーブルのレコード削除時に、親idを持つレコードを連鎖削除
CREATE TRIGGER トリガー名 AFTER DELETE ON 親テーブル
FOR EACH ROW
BEGIN
    DELETE FROM 対象テーブル
    WHERE 連結フィールド = OLD.id;
END

コメント