postgresql、oracle数据库序列查询、创建、修改

postgresql数据库序列

创建

CREATE SEQUENCE IF NOT EXISTS seq_dc_mid_pi_ecsystem_m;

相关技能
查询所有自增序列

SELECT "c"."relname" FROM "pg_class" "c" WHERE "c"."relkind" = 'S';

pgSQL导表或者创建表的时候,检查是否存在自增字段序列,然后创建

CREATE SEQUENCE IF NOT EXISTS tablename_id_seq;

创建自增序列

CREATE SEQUENCE tablename_id_seq
CREATE SEQUENCE tablename_id_seq START 10;

删除某个自增序列

DROP SEQUENCE tablename_id_seq

更新某个自增序列

alter sequence tablename_id_seq restart with 100

查询下一个序列

select nextval('tablename_id_seq ');

使用自增序列

nextval('tablename_id_seq'::regclass)

oracle数据库新增序列

// 查看所有库序列
select * from all_sequences
// 查看当前库序列
select * from user_sequences

创建序列

create SEQUENCE [序列名称]
INCREMENT by 1   --自增1
START WITH 1        --1开始
NOMAXVALUE      --没有最大值
NOCYCLE             --不循环
CACHE 10;           --缓存10

修改序列几种方法:

1.先删除再重新建

drop sequence [序列名称];

create SEQUENCE [序列名称]
INCREMENT by 1   --自增1
START WITH 1000        --想开始的序列
NOMAXVALUE      --没有最大值
NOCYCLE             --不循环
CACHE 10;           --缓存10

2.通过修改步长

// 查看序列当前值
select [序列名称].nextval from dual;
// 当前值为180,执行后为187
alter sequence [序列名称] increment by 7;
// 当前值为180,执行后为178
alter sequence [序列名称] increment by -2;
// 最后一定要把步长改回1,不然每次新增步长就变成上面那样,但是执行后序列会新增1,
alter sequence [序列名称]increment by 1;

3.通过数据库工具实现,比如navicat点击“其他-序列-选择需要修改的序列
postgresql、oracle数据库序列查询、创建、修改_第1张图片

触发器,关联表id和序列

CREATE OR REPLACE TRIGGER 触发器名
BEFORE INSERT ON 表名
FOR EACH ROW
BEGIN
SELECT 序列名.NEXTVAL INTO :NEW.ID FROM DUAL;
END;

你可能感兴趣的:(关系型数据库,数据库序列)