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 ;
我正在考虑实施用户注册系统。 '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 ;