我选择更新我的应用程序和数据库以使用UUID作为主键。正如我试图通过尽可能少地修改我的应用程序来实现这一点,我想到了使用mysql触发器。
这个帖子
Creating trigger in mysql for generation UUID
解释了如何在插入时生成UUID。但是使用它作为关键属性,我需要处理不太可能的碰撞情况。 是否可以通过使用mysql触发器使用新的UUID重试插入来对约束违规做出反应?
答案 0 :(得分:1)
回答被问到的问题......
问:是否可以通过使用mysql触发器使用新的UUID重试插入来对约束违规做出反应?
答:不,不可能在INSERT
或BEFORE INSERT
触发器中“重试”MySQL AFTER INSERT
。不在触发器内。 (请注意,此限制与在列中存储UUID值或将该列用作主键无关。)
如果INSERT
操作引发重复键异常,则无法在AFTER INSERT
触发器中捕获该异常。