[英]How to set SEQUENCE as DEFAULT in Postgres-XL?
I use Postgres-XL 10R1. 我使用Postgres-XL 10R1。 I created table
packs
and sequence packs_id_seq
same SQL: 我创建了表
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;
I tried to use packs_id_seq as default value for id column. 我尝试将packs_id_seq用作ID列的默认值。
ALTER TABLE packs ALTER COLUMN id SET DEFAULT (nextval('packs_id_seq'));
But have some problem 但是有一些问题
INSERT INTO packs (name) VALUES ('test');
INSERT 0 0
Why rows didn't insert? 为什么没有插入行?
So, I change clause for DISTRIBUTE
. 因此,我更改了
DISTRIBUTE
子句。
ALTER TABLE packs DISTRIBUTE BY ROUNDROBIN;
ALTER TABLE packs DISTRIBUTE BY MODULO(id);
ALTER TABLE packs DISTRIBUTE BY HASH(id);
But have same problem again. 但是又有同样的问题。
Any ideas? 有任何想法吗? Thanks.
谢谢。
You can use "serial" datatype here, so your create table will be like 您可以在此处使用“串行”数据类型,因此您的创建表将类似于
CREATE TABLE packs (
id serial NOT NULL,
name varchar(10) NOT NULL
) DISTRIBUTE BY REPLICATION;
and now when inserting records, 现在插入记录时
INSERT INTO packs (name) VALUES ('test');
it will have record like 它会像
id | name
1 | test
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.