记一次同步数据库,到一半时失败,导致数据库表索引出错的问题

 nadia     2019-01-23     1429     0   

欢迎来到银盒子的世界~

在 mysql 中,实现 id 自增的方式是依靠加一个 auto_increment 标志,而在 pgsql 中,id 自增是通过序列 SEQUENCE。

创建表时设置自增序列为:

    CREATE TABLE "config" (
        "id" int4 NOT NULL DEFAULT nextval('config_id_seq'::regclass),
        ...
    };

如果需要修改创建表之后的序列,如:

    ----删除前先解除 id 对该序列的依赖
    ALTER TABLE tablename ALTER COLUMN id SET DEFAULT null;
    DROP SEQUENCE IF EXISTS sequence_name;
    ---- id_max 即 id 目前的最大值,可写为1,可通过 “SELECT MAX(id) FROM tablename” 得到
    CREATE SEQUENCE sequence_name START WITH id_max;
    ALTER TABLE tablename ALTER COLUMN id SET DEFAULT nextval('sequence_name'::regclass);

发表评论