当您具有负载平衡的数据库和应用程序实例时,生成连续值的最佳方法是什么?
例如,我有一个负载平衡的mysql数据库。 我的PHP应用程序与docker一起部署,并具有3个容器
我必须生成连续的ID。我不能使用自动递增,因为我必须根据关系生成唯一的ID(例如,我必须根据与之相关的女巫社会生成唯一的账单号)
我的账单可以生成,但不能兑现。发出帐单时,我必须生成唯一的值。
TRIGGER ON UPDATE是一个好的解决方案吗?
想得到答案的答案
答案 0 :(得分:0)
我将当前ID保存在db表中。 每次您想要增加ID时,请执行以下操作:
答案 1 :(得分:-2)
我要去MAX(id)+1 您可以使用以下查询获得序列中的下一个数字:
SELECT COALESCE(MAX(id),0) + 1 FROM bill
WHERE society = 'XYZ'
您必须采取步骤以确保两个进程不会生成相同的数字,并且这可能很复杂,但并非不可克服。
就我个人而言,我总是会避免触发。我从没使用过触发器,以后也不后悔。