i使用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);
但再次有同样的问题。
有什么想法吗?谢谢。
您可以在此处使用"串行"数据类型,因此您的创建表将就像
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