PostgreSQL创建表和自增序列
一、创建表:
注意:
1、在mysql没有序列的概念,id自增通过auto_increment实现;
2、pgsql没有auto_increment的概念,如何实现id自增?有两种方式:
方式一:创建序列,绑定表;
- 创建序列:
create sequence t_user_id_seq;
- 创建后刷新,发现在定义里面初始化了一些基础值:
- 创建表,指定序列名称,注意,序列的名称加上单引号:
-- 注意:序列的名字加上单引号,否则报错
create table t_user(
id int8 default nextval('t_user_id_seq'),user_name varchar(255)
);
- 在表属性上就能看到:
- 在序列的定义上也能看到
方式二:创建表时,指定id的类型为自增序列类型,通过nextval(序列名称)函数直接在创建表的时候生成并绑定序列:
CREATE TABLE IF NOT EXISTS user_mode.t_order
(id bigint NOT NULL DEFAULT nextval('user_mode.t_order_id_seq'::regclass),order_number character(1)[] COLLATE pg_catalog."default" NOT NULL,order_name "char"[],price double precision,deleted int2vector NOT NULL,created_time time with time zone NOT NULL,CONSTRAINT t_order_pkey PRIMARY KEY (id)
);
方式二更方便!
测试:多次insert后,会根据定义生成自增序列:
二、查询、修改和删除和mysql没差别