我有一个关于在现有记录上创建序列号的任务。这个表已经创建,有大量的记录,我创建了一个新字段"唯一ID"。
让我们看看我的表如下:-
FieldA FieldB UniqueId
Zack 928334
Yassir 829384
Yassir 829384
Zack 928334
Zack 928334
Richard 723346
我需要的是PostgreSQL或Python可以在第一条记录上创建一个以"0501"开头的数字,如果同一条记录找到了一个新数字,但序列将是"0502",依此类推。
FieldA FieldB UniqueId
Zack 928334 0501
Yassir 829384 0501
Yassir 829384 0502
Zack 928334 0502
Zack 928334 0503
Richard 723346 0501
关于这件事我还没有任何想法,希望那些已经遇到这个问题的人能帮助我解决它。
我立即提前非常感谢你。
谢谢你。
1条答案
按热度按时间lx0bsm1f1#
你可以用一个相对简单的触发器得到你想要的。(参见demo)
注意事项:
1.这是max+1的赋值。在多用户环境中,实际上保证在某个点生成一个副本。您需要处理它所启用的争用条件。
1.您需要弄清楚当
fielda
或fieldb
被更新为一组不存在的值或旧值中留有间隙时会发生什么,以及删除一行时会发生什么。可能会有其他后果。