0

我通过 pg_dump 从 postgresql 转储 sql 并得到下表定义:

CREATE TABLE administrator (
    mtime bigint,
    email text,
    group_id bigint,
    user_account text NOT NULL
);
ALTER TABLE ONLY administrator ADD CONSTRAINT administrator_pkey PRIMARY KEY (user_account);

我设置了 postgresql-xl 然后导入它返回的 sql 文件:

错误:分布式表的唯一索引必须包含散列分布列。

Postgres-XL手册说:

如果未指定 DISTRIBUTE BY,则将选择具有 UNIQUE 约束的列作为分布键。如果未指定此类列,则分布列是定义中的第一个符合条件的列。如果没有找到这样的列,则该表将由 ROUNDROBIN 分发。

如果这是真的,为什么我的 sql 文件导入仍然返回错误?

4

1 回答 1

0
Drop Table administrator ;

CREATE TABLE administrator (
    mtime bigint,
    email text,
    group_id bigint,
    user_account text NOT NULL
) DISTRIBUTE BY HASH(user_account);

ALTER TABLE administrator ADD CONSTRAINT administrator_pkey PRIMARY KEY (user_account);

将解决问题。

于 2020-02-23T23:18:25.147 回答