Chr*_* P. 1 postgresql sequence auto-increment postgresql-9.2
我有一个使用以下SQL创建的postgres表:
CREATE TABLE mytable (
mytable_id BIGSERIAL NOT NULL,
mytable_char VARCHAR(8) NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
这将创建表以及隐式mytable_mytable_id_seq序列.
现在,在创建1.000.000记录之后,我想将此表拆分为分区表(使用继承).因为我链接引用其他表中的主表,我想继续使用新子表中原始表的ID并继续使用序列.
但是,如果我这样做DROP TABLE mytable也会删除序列.丢弃桌子时如何保持顺序?
您需要先删除列和序列之间的关联:
alter sequence mytable_mytable_id_seq owned by none;
Run Code Online (Sandbox Code Playgroud)
如果您现在删除表,则不会删除序列.
详细信息在手册中:http://www.postgresql.org/docs/current/static/sql-altersequence.html
另一种方法是创建一个新序列并将其设置为现有序列的值:
create sequence part_seq;
select setval('part_seq', (select nextval('mytable_mytable_id_seq'), false);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
296 次 |
| 最近记录: |