MySQL 布尔值更改时删除外部约束

MySQL foreign constraint delete on boolean change

我正在考虑实施用户注册系统。 'users''user_activation' tables.

如果我的 table 看起来像这样:table -> 字段:

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

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

现在,如果用户从 'users'[=30= 中删除,我可以从 'user_activation' 中级联删除令牌数据] table.

我想知道当 'activated' 布尔值 'users' table 将设置为 'true'?

(一旦用户激活,token就没有用了,所以一旦用户激活就应该删除它)。

我想不出使用外键执行此操作的方法,但您可以使用触发器:

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 ;