Как установить ПОСЛЕДОВАТЕЛЬНОСТЬ как ПО УМОЛЧАНИЮ в Postgres-XL?

Я использую 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 ответ

Вы можете использовать "серийный" тип данных здесь, так что ваша таблица создания будет похожа

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
Другие вопросы по тегам