【问题标题】:Mysql trigger to insert on two connected tablesMysql触发器在两个连接的表上插入
【发布时间】:2014-08-03 16:05:10
【问题描述】:

我有 3 个 mysql 表:

user_followers 有列 id,user_id 通知 有列 id,user_id notification_object 有列 notification_id ,类型

在 user_followers 上插入时我想插入

user_id=通知中的New.user_id

然后使用刚刚插入的通知的id

notification_object.type = "2" and notification_object.notification_id = 刚刚在通知表中插入了 id

现在的问题是如何找到通知表的 id:

DELIMITER //


CREATE TRIGGER follow_notification AFTER INSERT ON user_friends
FOR EACH ROW 
Begin
insert into notification(user_id) values(New.user_id);
insert into notification_object(notification_id,type) values(????,"2");

End

//

【问题讨论】:

标签: mysql database triggers


【解决方案1】:

如果notifications.id 是自动递增的,mysql 包含一个函数last_insert_id(),它将返回(with caveats)最后插入的id。

DELIMITER //

CREATE TRIGGER follow_notification AFTER INSERT ON user_friends
FOR EACH ROW 
Begin
  declare v_notification_id INT;
  insert into notification(user_id) values(New.user_id);
  /* set a variable to the last id inserted to the db */
  set v_notification_id=(select last_insert_id());
  /* use the variable in the next insert */
  insert into notification_object(notification_id,type) values(v_notification_id,"2");

End//

【讨论】:

    猜你喜欢
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多