Postgresql 在Postgres中重命名nextval(';…';)
我有一个名为Postgresql 在Postgres中重命名nextval(';…';),postgresql,ddl,column-defaults,Postgresql,Ddl,Column Defaults,我有一个名为pivot\u device\u user的表,id上有一个序列作为notnull default nextval('pivot\u device\u user\u id\u seq'::regclass) 然后我决定将我的表重命名为pivot\u-box\u-user,但是nextval(…)仍然是nextval(pivot\u-device\u-user\u-id\u-seq'::regclass) 我想将其更改为nextval('pivot\u box\u user\u id\
pivot\u device\u user
的表,id上有一个序列作为notnull default nextval('pivot\u device\u user\u id\u seq'::regclass)
然后我决定将我的表重命名为pivot\u-box\u-user
,但是nextval(…)
仍然是nextval(pivot\u-device\u-user\u-id\u-seq'::regclass)
我想将其更改为nextval('pivot\u box\u user\u id\u seq'::regclass)
。如何做到这一点?首先,您必须了解什么是串行
:
nextval('pivot\u device\u user\u id\u seq'::regclass)
'pivot\u device\u user\u id\u seq':regclass
在内部解析为一个OID
,即底层序列的OID,这就是实际存储的内容(早期绑定)。如果重命名序列,其OID将保持不变。因此,您需要做的就是:
检查是否成功:
SELECT pg_get_serial_sequence('pivot_box_user', 'id');
相关的:
SELECT pg_get_serial_sequence('pivot_box_user', 'id');