作成した2分後にレコードを削除するためにトリガーを作成したいと思います。これは「パスワードを回復する」シナリオで使用されるため、誰かがパスワードを回復するために検証コードを使用する時間枠が2分になります。 SQLiteは私が取り組んでいるものです。ここでは状況があります:トリガーをアクティブにしたレコードを削除するSQLiteトリガー
CREATE TABLE IF NOT EXISTS password_recovery(
email VARCHAR(50) NOT NULL UNIQUE,
confirmation_id INTEGER(5) PRIMARY KEY,
FOREIGN KEY (email) REFERENCES users (email)
ON DELETE NO ACTION ON UPDATE NO ACTION,
);
CREATE TRIGGER IF NOT EXISTS password_recovery_deletion_timer AFTER INSERT ON password_recovery
BEGIN
DO SLEEP(120);
// i want to delete here but how do I pass which record triggered the trigger?
END;
私はこれを非常に危険な操作と考えています。 –
有効期限とハッシュの両方を関連付けられたテーブルに格納しないでください。次に、ユーザーのハッシュが一致することを確認し、有効期限が現在の – atoms
の原子よりも大きいことを確認してください。これは最終的にどこに行くのかと思います。 –