我选择更新我的应用程序和数据库以使用uuid作为主键。当我试图通过尽可能少的改动来实现这一点时,我考虑使用mysql触发器。这根线在mysql中为生成uuid创建触发器说明如何在插入时生成uuid。但是使用它作为一个关键属性,我需要处理不太可能的碰撞情况。是否可以通过使用mysql触发器使用新的uuid重试插入来对约束冲突做出React?
zzlelutf1#
回答被问到的问题。。。问:是否可以通过使用mysql触发器用新的uuid重试插入来对违反约束的行为做出React?答:不,不可能“重试”mysql INSERT 从一个 BEFORE INSERT 或者一个 AFTER INSERT 触发。不在触发器内(请注意,此限制与在列中存储uuid值或将该列用作主键无关。)如果 INSERT 操作抛出一个重复的键异常,无法在 AFTER INSERT 触发。
INSERT
BEFORE INSERT
AFTER INSERT
1条答案
按热度按时间zzlelutf1#
回答被问到的问题。。。
问:是否可以通过使用mysql触发器用新的uuid重试插入来对违反约束的行为做出React?
答:不,不可能“重试”mysql
INSERT
从一个BEFORE INSERT
或者一个AFTER INSERT
触发。不在触发器内(请注意,此限制与在列中存储uuid值或将该列用作主键无关。)如果
INSERT
操作抛出一个重复的键异常,无法在AFTER INSERT
触发。