一、问题背景:
今天在做一个OA系统,原先的数据库是Oracle的,后来改到Postgresql数据库,一开始把数据库迁移到Postgresql上来,序列和建表都通过Oracle导出的sql语句来完成,没有考虑到序列在重新创建后,会重新重初始值开始计算,让我遇到了现在的问题,新的数据无法插入。这个让我想起了以前在华为时候,一位DBA跟我说过,数据在迁移的时候一定要先check序列的问题,现在想起来确实,呵呵。
二、如何解决 数据迁移后,序列的问题
当然对于DBA来说,这个必要做的。
1、创建序列
skytf=> create sequence seq_test_1 INCREMENT by 1 MINVALUE 1 NO MAXVALUE start with 1 ;
CREATE SEQUENCE
2、查看序列属性
skytf=> \d seq_test_1
Sequence "skytf.seq_test_1"
Column | Type | Value
---------------+---------+---------------------
sequence_name | name | seq_test_1
last_value | bigint | 1
start_value | bigint | 1
increment_by |