【发布时间】:2017-09-11 16:20:24
【问题描述】:
您好,我有两个表,分别名为 users 和 userrewards。当新行插入到 users 表中时,我想使用 userid 并在 userrewards 表中创建一个新行,前提是 usertype 是“高级”。在 userrewards 表中,我只需要插入用户 ID - 其余字段设置为默认值,直到用户自己进行更改。如何通过触发器做到这一点?
【问题讨论】:
您好,我有两个表,分别名为 users 和 userrewards。当新行插入到 users 表中时,我想使用 userid 并在 userrewards 表中创建一个新行,前提是 usertype 是“高级”。在 userrewards 表中,我只需要插入用户 ID - 其余字段设置为默认值,直到用户自己进行更改。如何通过触发器做到这一点?
【问题讨论】:
您需要在用户上创建一个“插入后”触发器:这就是您正在观看的表格。现在,如果我猜对了您的列名,则用于创建触发器的 sql 应该如下所示:
CREATE TRIGGER user_ai AFTER INSERT ON user
FOR EACH ROW
BEGIN
IF new.usertype = 'premium' THEN
INSERT INTO userrewards (user_id) VALUES new.id;
END IF;
END;
可以在here 中找到另一个带有 if 语句和 :old / :new 值的触发器示例。创建触发器here 的 MySQL 文档。 if 语法 here 的 MySQL 文档。
【讨论】: