如果更新符合条件

时间:2016-07-04 22:26:39

标签: mysql sql triggers

如果它满足某些条件,我试图激发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自动增量。

有什么建议吗?

0 个答案:

没有答案