在机器故障和匆忙将数据传输到另一台机器上之后,我们以某种方式结束了一些全新的序列替换旧序列作为身份列(以及一些旧序列)的支持。
我们可以使用RESET
表中的最大值来创建新序列,并且还可以将ALTER SEQUENCE ... RENAME
新序列重命名为旧名称(以绕过客户端代码中的任何硬编码),但我想知道是否可以交换旧序列顺序回到原位?
在机器故障和匆忙将数据传输到另一台机器上之后,我们以某种方式结束了一些全新的序列替换旧序列作为身份列(以及一些旧序列)的支持。
我们可以使用RESET
表中的最大值来创建新序列,并且还可以将ALTER SEQUENCE ... RENAME
新序列重命名为旧名称(以绕过客户端代码中的任何硬编码),但我想知道是否可以交换旧序列顺序回到原位?
serial
列只是一组松散捆绑的 Postgres 功能。看:更换底层很容易
SEQUENCE
。这样做是可以的:serial
专栏,SEQUENCE
可以说是“有好处的朋友”。表和序列有独立的访问控制列表(GRANT
特权),这导致(引起)很多混乱。IDENTITY
列是(几乎)相同概念的后来的标准 SQL 迭代。在这里,SEQUENCE
与其列的联系更加紧密IDENTITY
。它只是一个实现细节,就像唯一索引是约束的实现细节一样PRIMARY KEY
。某种意义上来说,是“婚姻”。没有单独的 ACL 列表。SEQUENCE
即使具有超级用户权限仍然可以,但交换下面的内容也是不行的。有关的:
该功能的原作者 Peter Eisentraut 撰写的这篇博文中包含所有详细信息(包括操作系统目录的命令)
IDENTITY
: