如果它满足某些条件,我试图激发MySQL运行INSERT而不是UPDATE。考虑这个带有id, user_id
的简单表并结合其他简单字段。 id是主要的自我增量。然后有人运行更新并尝试更改user_id
DELIMITER ;;
CREATE TRIGGER `mytable` BEFORE UPDATE ON `mytable` FOR EACH ROW
BEGIN
IF OLD.user_id != NEW.user_id THEN
SET NEW.id = NULL;
END IF;
END;;
DELIMITER ;
现在问题是,当然它不起作用,因为你不能在主键设置为NULL的情况下运行UPDATE(如果为主键值提供NULL,我希望触发INSERT)
最初我认为我可以在这里运行另一个插入,并放置一些SIGNAL或其他类型的打破当前更新..并通过键入所有字段和值插入,但我想确保插入NEW对象无论里面有多少个字段,我只需要id
自动增量。
有什么建议吗?