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点击“其他-序列-选择需要修改的序列
在这里插入图片描述

触发器,关联表id和序列

CREATE OR REPLACE TRIGGER 触发器名
BEFORE INSERT ON 表名
FOR EACH ROW
BEGIN
SELECT 序列名.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值