場景
數據的code需要有規律的動態生成,數據是有父子結構的。如果父節點數據是 003,子節點就是003001這樣,再增加就是003002;
防止生成新的code時,有並發請求。因此需要包含在一個事務里。
解決方法
insert
person.department (id, code) (
select uuid(), lpad(max(code) + 1, 9, 0)
from 表名
where code like '002001%' and length(code) = 9)
備注
-
9 和 查詢的參數自行替換生成即可
-
lpad 用於字符串左邊補0,第2個參數表示總長度,第3個參數表示用什么數字補;
-
rpad 用於右邊補