Mysql - 创建触发器以根据插入另一个表中的行插入新行

时间:2017-09-11 16:20:25

标签: mysql database triggers

您好我有两个名为usersuserrewards的表格。当一个新行插入到users表中时,我想获取userid并在userrewards表中创建一个新行,前提是usertype是" premium"。在userrewards表中,我只需要插入userid - 其余字段设置为默认值,直到用户自己进行更改。我怎么能通过触发器来做到这一点?

1 个答案:

答案 0 :(得分:2)

您需要在用户上创建“after instert”触发器:这是您正在观看的表格。现在,如果我正确猜出了你的列名,那么用于创建触发器的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; 

可以找到if语句和:old /:new值的触发器的另一个示例here。用于创建触发器here的MySQL文档。 if-syntax here

的MySQL文档