帮忙写一个oracle的id生成器!

MsSnow 2013-03-08 10:19:06
没思路!所以请各位大神帮小弟写一个。
我重启程序后它生成的id应该不会冲突吧!
...全文
298 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
....貌似我以前还写过类似的专利.. 你可以自己用一个表来维护类似oracle序列的字段 新建序列表SEQUENCE CREATE TABLE `SEQUENCE` ( `name` varchar(45) NOT NULL COMMENT ' 业务表名称(数据库_表名)', `value` bigint(20) NOT NULL COMMENT ' 业务表对应的主键id', `increment` int(11) DEFAULT '1' COMMENT ' 序列的步长,默认1,如果出现负值则表示序列按此步长递减', `start` bigint(20) DEFAULT '1' COMMENT ' 用于定义序列的初始值,默认1', PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='序列表' 然后写一个工具类来维护和获取自增序列 或者自己写存储过程维护序列
菖蒲老先生 2013-03-11
  • 打赏
  • 举报
回复
查查create SEQUENCE的用法吧。。。 全库共享的自增id
daxia198411 2013-03-11
  • 打赏
  • 举报
回复
ORACLE上没有自增字段,可以使用索引和触发器来达到此目的 第一步:创建SEQUENCE CREATE SEQUENCE S_COUNTRY_ID INCREMENT BY 1 START WITH 1 MAXVALUE 999999999; 第二步:插入 SQL> INSERT INTO TTT VALUES (S_COUNTRY_ID.NEXTVAL,'DDD'); 或者创建一个基于该表的BEFORE INSERT 触发器,在触发器中使用该SEQUENCE create or replace trigger TRG_TEST before insert on 表名 for each ROW BEGIN SELECT S_COUNTRY_ID.NEXTVAL INTO :NEW.U_ID FROM DUAL; END;
武动 2013-03-10
  • 打赏
  • 举报
回复
oracle 数据库没有像 MYSQL一样有 自动ID增值 的功能,如要实现可以用触发器。 首先就是建立一个序列,序列有有自动增值的功能,再建立一个触发器。 如: 建立一个序列 CREATE SEQUENCE auto_seq minvalue 1 -- 最小值 increment by 1 -- 每次增加值数 nocache -- 不启用缓存 nocycle -- 不循环; 建立一个触发器 CREATE OR REPLACE trigger auto_id_tri before insert on pjsh_person -- before 表示插入新数据时执行 for each row -- 每次插入数据到pjsh_person表时执行下面的oracle 语句 begin select auto_seq.nextval into :NEW.ID from dual; end; auto_id_tri 触发器名 auto_seq.nextval 提取auto_seq 序列的值 :NEW.ID ID为要添加的主键列名 pjsh_person 要添加自动ID值的表名。
MsSnow 2013-03-09
  • 打赏
  • 举报
回复
代码代码。求代码!
MsSnow 2013-03-09
  • 打赏
  • 举报
回复
这个很麻烦吗??怎么没人接单啊!
Jacky-止涯 2013-03-09
  • 打赏
  • 举报
回复
引用 楼主 MsSnow 的回复:
没思路!所以请各位大神帮小弟写一个。 我重启程序后它生成的id应该不会冲突吧!
不会冲突的,每次启动都先读取一下数据库中最大的,然后在缓存里自动生成嘛! 然后每过一个间隔,就重新读取一下,更新一下id序列
MsSnow 2013-03-08
  • 打赏
  • 举报
回复
嗯。不使用oracle里面的序列!
huangfan575 2013-03-08
  • 打赏
  • 举报
回复
生成uuid
MsSnow 2013-03-08
  • 打赏
  • 举报
回复
木有人帮我!

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧