代码之家  ›  专栏  ›  技术社区  ›  obrassard

在另一个表中更新后从表中删除会导致mysql出错

  •  0
  • obrassard  · 技术社区  · 6 年前

    CREATE TRIGGER `trg_DeleteSubscriptions` AFTER UPDATE ON `users`
    FOR EACH ROW IF (NEW.subscriptionID <=> NULL) THEN 
    DELETE FROM subscriptions s WHERE s.subscriptionID = OLD.subscriptionID; 
    END IF
    

    UPDATE users SET AccountState = 2, subscriptionID = null WHERE UserID IN
    (SELECT * from (SELECT u.UserID FROM users u INNER JOIN subscriptions a ON
    u.subscriptionID = a.subscriptionID WHERE a.EndDate < CURRENT_TIMESTAMP) as c) 
    

    (select * from (select ..) as c) 别名/临时表)

    更新:我很确定问题是由事件的查询而不是触发器本身引起的,因为我用那个简单的查询进行了测试 'UPDATE users SET SubscriptionID = null WHERE UserID = 24

    谢谢!

    1 回复  |  直到 6 年前
        1
  •  0
  •   spencer7593    6 年前

    subscriptions

    推荐文章