社区
Oracle 高级技术
帖子详情
ORACLE自增字段的问题,希望高手帮忙解决,谢谢。
senhai
2008-04-18 09:57:28
现在想创建一个表,ID自增为TUR200812250001(TUR+日期+自增号)这样的形式,用什么方法比较好?
很着急,谢谢!
...全文
250
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
之表中指定
字段
自增
表里指定
字段
自增
,这个
问题
在SQLSERVER里面来说很简单 ,Identity(1,1)该
字段
就会从1开始,按照+1的方式
自增
. 但是在
Oracle
里面呢,就需要用到序列和触发器完成才可以。 相信这个
问题
每一个转
Oracle
型数据库时都会遇到。 所以我在此写一篇博客,不求闻达于诸侯,只
希望
大家也和我一样愿意把自己遇到的
问题
写到博客上,来帮助每一位IT行业的同伴。 首先数据表名:...
Oracle
数据库实现主键
字段
自增
的方法
在
Oracle
数据库中,实现主键
字段
的
自增
功能对于确保数据的唯一性和简化数据插入操作非常重要。本文将介绍如何在
Oracle
数据库中实现主键
字段
的
自增
,提供几种常见的方法供参考。在
Oracle
数据库中,没有像其他数据库管理系统(如 MySQL 和 SQL Server)中的
自增
字段
或自动增长列的概念。通过本文的介绍,你了解了在
Oracle
数据库中实现主键
字段
自增
的方法。
oracle
表中指定
字段
自增
表里指定
字段
自增
,这个
问题
在SQLSERVER里面来说很简单 ,Identity(1,1)该
字段
就会从1开始,按照+1的方式
自增
. 但是在
Oracle
里面呢,就需要用到序列和触发器完成才可以。 相信这个
问题
每一个转
Oracle
型数据库时都会遇到。 所以我在此写一篇博客,不求闻达于诸侯,只
希望
大家也和我一样愿意把自己遇到的
问题
写到博客上,来帮助每一位IT行业的同伴。 首先数据表名: XXXX 查询数据 select * from XXXX; 表中主键列是F_ID ,接下来就指定该列F_ID
自增
长
C# + 微软企业库(Microsoft.Enterprise.Library),实现
Oracle
字段
自增
的应用
在数据库设计中,常常需要一个唯一表示数据记录的
字段
,我们叫“标识
字段
”,这个
字段
往往用于表记录之间的关联,对于SQL Server的使用者来说,只要把一个int型
字段
设置成“
自增
”就可以了。但是
Oracle
没有“
自增
”
字段
,这篇文章谈谈
Oracle
实现
字段
自增
长并用C#调用微软企业库来访问的运用。一.建表建立一个测试用的表Test结构如下列名类型是否
通过PL/SQL创建序列和触发器实现表
自增
字段
创建序列 创建触发器
Oracle 高级技术
3,499
社区成员
18,709
社区内容
发帖
与我相关
我的任务
Oracle 高级技术
Oracle 高级技术相关讨论专区
复制链接
扫一扫
分享
社区描述
Oracle 高级技术相关讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章