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
谢谢!