社区
Oracle 高级技术
帖子详情
ORACLE自增字段的问题,希望高手帮忙解决,谢谢。
senhai
2008-04-18 09:57:28
现在想创建一个表,ID自增为TUR200812250001(TUR+日期+自增号)这样的形式,用什么方法比较好?
很着急,谢谢!
...全文
249
15
打赏
收藏
ORACLE自增字段的问题,希望高手帮忙解决,谢谢。
现在想创建一个表,ID自增为TUR200812250001(TUR+日期+自增号)这样的形式,用什么方法比较好? 很着急,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qing878
2008-07-18
打赏
举报
回复
谢谢了!
权子。
2008-04-21
打赏
举报
回复
[Quote=引用 10 楼 HelloWorld_001 的回复:]
每天重置就从1开始了,
[/Quote]
恩这是个好办法,再加上JOB 就OK了..
19az
2008-04-21
打赏
举报
回复
可以增加个job,每天0点整的时候重置序列,具体如何重置序列,自己可以存储过程让job每天来调,存储过程写法可参照:
http://blog.csdn.net/bzszp/archive/2005/03/15/320288.aspx
SYUEHOKO
2008-04-21
打赏
举报
回复
关于采番...LZ好像没有什么概念!!!
panxuan
2008-04-21
打赏
举报
回复
[Quote=引用 5 楼 zhpsam109 的回复:]
用序列+触发器实现!
触发器中
:new.Id='TUR' ¦ ¦to_char(sysdate,'yyyymmdd') ¦ ¦lpad(seq.nextval,5,'0');
具体序列+触发器实现自增的方法,google一下!
[/Quote]
也可以封装成一个方法。每次新增就Get一下。
HelloWorld_001
2008-04-18
打赏
举报
回复
每天重置就从1开始了,
realduke
2008-04-18
打赏
举报
回复
[Quote=引用 3 楼 senhai 的回复:]
引用 1 楼 HelloWorld_001 的回复:
TUR ¦ ¦to_char(sysdate,'yyyymmdd') ¦ ¦sequence名字.next
以前看过的,每天把seq重置就好了
每天都要重置?怎么重置?
我比较菜不是很清楚。
[/Quote]
之所以要重置,是可能由于seq的长度不够,会导致重复记录,如seq的最大值为999,当你一天中插入第1000条记录时,则seq又变成001了,则与第一条记录的id相同;如果你能保证每天插入的记录不会超过seq的最大长度,则无需重置。
ngdgycc
2008-04-18
打赏
举报
回复
建立序列:
CREATE SEQUENCE seq_id
Increment By 1
Start With 1
MaxValue 99999
NoCache
Cycle
Order;
INSERT INTO your_table (...) VALUES('TUR'||to_char(sysdate,'yyyymmdd')||to_char(seq_id.nextval,'fm00000'),....);
senhai
2008-04-18
打赏
举报
回复
[Quote=引用 4 楼 super_ssy 的回复:]
更正一点
INSERT INTO MYTABLE(ID,……) VALUES('TUR'¦¦to_char(sysdate,'yyyymmdd')¦¦MYSEQUENCE.NEXTVAL,……)
[/Quote]
OK!试一下!
senhai
2008-04-18
打赏
举报
回复
[Quote=引用 5 楼 zhpsam109 的回复:]
用序列+触发器实现!
触发器中
:new.Id='TUR' ¦ ¦to_char(sysdate,'yyyymmdd') ¦ ¦lpad(seq.nextval,5,'0');
具体序列+触发器实现自增的方法,google一下!
[/Quote]
谢了!
zhpsam109
2008-04-18
打赏
举报
回复
用序列+触发器实现!
触发器中
:new.Id='TUR'||to_char(sysdate,'yyyymmdd')||lpad(seq.nextval,5,'0');
具体序列+触发器实现自增的方法,google一下!
super_ssy
2008-04-18
打赏
举报
回复
更正一点
INSERT INTO MYTABLE(ID,……) VALUES('TUR'¦¦to_char(sysdate,'yyyymmdd')¦¦MYSEQUENCE.NEXTVAL,……)
super_ssy
2008-04-18
打赏
举报
回复
用触发器结合ORACEL自增序列就可以做了,在触发器里对插入动作的时候,触发类似如下语句就行
INSERT INTO MYTABLE(ID,……) VALUES('TUR'||SYSDATE||MYSEQUENCE.NEXTVAL,……)
senhai
2008-04-18
打赏
举报
回复
[Quote=引用 1 楼 HelloWorld_001 的回复:]
TUR ¦ ¦to_char(sysdate,'yyyymmdd') ¦ ¦sequence名字.next
以前看过的,每天把seq重置就好了
[/Quote]
每天都要重置?怎么重置?
我比较菜不是很清楚。
HelloWorld_001
2008-04-18
打赏
举报
回复
TUR||to_char(sysdate,'yyyymmdd')||sequence名字.next
以前看过的,每天把seq重置就好了
oracle
之表中指定
字段
自增
在
Oracle
数据库中实现表的指定
字段
自增
,需要利用序列和触发器。本文介绍了如何创建序列,设置增量、初始值等参数,并展示了如何在SQL语句中使用序列的nextval和currval功能,确保数据插入时
自增
字段
自动递增。
Oracle
数据库实现主键
字段
自增
的方法
文章介绍了在
Oracle
数据库中如何实现主键
字段
的
自增
功能,提供了使用序列和触发器以及
Oracle
12c及以上版本的IDENTITY列两种方法。通过序列和触发器需手动创建和管理,而IDENTITY列则简化了这一过程。
oracle
表中指定
字段
自增
本文介绍在
Oracle
数据库中如何使用序列和触发器实现表
字段
的
自增
功能,详细解释了序列的创建、参数设置及触发器的使用,为数据库设计提供实用指导。
C# + 微软企业库(Microsoft.Enterprise.Library),实现
Oracle
字段
自增
的应用
本文介绍了在
Oracle
中通过序列和触发器实现
字段
自增
,并结合C#微软企业库进行数据插入的方法。针对如何在插入关联表时获取
自增
字段
的值,提出了三种
解决
方案:先取值再插入、利用存储过程以及存储过程结合触发器,并提供了相应的代码示例。
通过PL/SQL创建序列和触发器实现表
自增
字段
本文介绍如何在
Oracle
数据库中使用PL/SQL通过序列和触发器实现表中
字段
的
自增
功能,包括序列创建、触发器编写及使用注意事项。
Oracle 高级技术
3,499
社区成员
18,709
社区内容
发帖
与我相关
我的任务
Oracle 高级技术
Oracle 高级技术相关讨论专区
复制链接
扫一扫
分享
社区描述
Oracle 高级技术相关讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章