2016-05-13 10 views
1

私はユーザー登録システムの実装について考えていました。 'users''user_activation'テーブルはどこにありますか。ブール値変更時のMySQL外部制約の削除

私のテーブルはこのように見えた場合:テーブル - >フィールド:今

users -> id,username,activated(boolean), etc. 

user_activation -> users_id (foreign key constraint obviously),token, etc. 

をユーザーが「ユーザー」から削除された場合、私は「user_activation」からトークンデータを削除カスケードすることができますテーブル。

Iだった疑問にどのように「ユーザー」テーブルで「有効」ブール値が「真」に設定されますときに私は同じことを達成するであろうか?

(ユーザーがアクティブになると、トークンは役に立たないため、ユーザーがアクティブになると削除する必要があります)。

答えて

1

私は、外部キーでこれを行うための方法を考えることはできませんが、トリガーを使用することができます。

delimiter // 

CREATE TRIGGER user_activation_tr 
BEFORE UPDATE ON users 
FOR EACH ROW 
BEGIN 
    IF NEW.activated THEN 
     DELETE FROM user_activation WHERE users_id = NEW.id; 
    END IF; 
END;// 

delimiter ; 
関連する問題