Как установить ПОСЛЕДОВАТЕЛЬНОСТЬ как ПО УМОЛЧАНИЮ в 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