Как установить ПОСЛЕДОВАТЕЛЬНОСТЬ как ПО УМОЛЧАНИЮ в Postgres-XL? - PullRequest
0 голосов
/ 18 декабря 2018

Я использую Postgres-XL 10R1.Я создал таблицу packs и последовательность packs_id_seq того же SQL:

CREATE TABLE packs (
    id integer NOT NULL,
    name varchar(10) NOT NULL
) DISTRIBUTE BY REPLICATION;

CREATE SEQUENCE packs_id_seq
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

Я попытался использовать packs_id_seq в качестве значения по умолчанию для столбца id.

ALTER TABLE packs ALTER COLUMN id SET DEFAULT (nextval('packs_id_seq'));

Но есть некоторые проблемы

INSERT INTO packs (name) VALUES ('test');
INSERT 0 0

Почему строки не вставляются?

Итак, я изменяю предложение на DISTRIBUTE.

ALTER TABLE packs DISTRIBUTE BY ROUNDROBIN;
ALTER TABLE packs DISTRIBUTE BY MODULO(id);
ALTER TABLE packs DISTRIBUTE BY HASH(id);

Но снова возникает та же проблема.

Есть идеи?Спасибо.

1 Ответ

0 голосов
/ 18 декабря 2018

Здесь вы можете использовать «серийный» тип данных, поэтому ваша таблица создания будет выглядеть как

CREATE TABLE packs (
    id serial NOT NULL,
    name varchar(10) NOT NULL
) DISTRIBUTE BY REPLICATION;

, и теперь при вставке записей

INSERT INTO packs (name) VALUES ('test');

будет иметь запись типа

id | name 
1  | test
...