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点击“其他-序列-选择需要修改的序列
触发器,关联表id和序列
CREATE OR REPLACE TRIGGER 触发器名
BEFORE INSERT ON 表名
FOR EACH ROW
BEGIN
SELECT 序列名.NEXTVAL INTO :NEW.表ID FROM DUAL;
END;