如何创建PostgreSQL分区序列?
是否有一种简单的(即非hacky)和无竞争条件的方法来在PostgreSQL中创建分区序列.例:
在问题中使用正常序列: | Project_ID | Issue | | 1 | 1 | | 1 | 2 | | 2 | 3 | | 2 | 4 | 在问题中使用分区序列: | Project_ID | Issue | | 1 | 1 | | 1 | 2 | | 2 | 1 | | 2 | 2 |
我不相信有一种简单的方法就像常规序列一样简单,因为:
>序列仅存储一个数字流(下一个值等).你想为每个分区一个. 你可以制作有用的东西,但你可能不会认为它很简单.依次解决上述问题: >使用表来存储所有分区的下一个值,使用multiseq(partition_id,next_val)等模式. >创建一个独立于当前事务的新事务(这样做的一种方法是通过dblink;我相信其他一些服务器语言可以更容易地完成它). >在项目表上创建一个插入触发器,该插入触发器使用对multinextval(‘projects_table’,NEW.Project_ID)的调用进行插入. 我自己并没有使用过这整个计划,但我已经尝试过类似于每个步骤的内容.如果你想尝试这个,可以提供multinextval函数和触发器的例子…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |