社区
Oracle 高级技术
帖子详情
ORACLE自增字段的问题,希望高手帮忙解决,谢谢。
senhai
2008-04-18 09:57:28
现在想创建一个表,ID自增为TUR200812250001(TUR+日期+自增号)这样的形式,用什么方法比较好?
很着急,谢谢!
...全文
222
15
打赏
收藏
ORACLE自增字段的问题,希望高手帮忙解决,谢谢。
现在想创建一个表,ID自增为TUR200812250001(TUR+日期+自增号)这样的形式,用什么方法比较好? 很着急,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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*plus下用sql语句创建,可通过序列+触发器间接实现:SQL> CREATE SEQUENCE FileID_sequence 2 INCREMENT BY 1 3 START WITH 1 4 NOM
ora1653 修改
oracle
表空间
查看
oracle
日志 alert_orcl.log Mon Sep 19 07:03:25 2011 ORA-1653: unable to extend table 用户.表名 by 128 in tablespace USERS ; ORA-1653: unab
WEB开发文档2 总结
转自:http://blog.donews.com/lvjiyong/archive/2006/06/29/931071.aspx怎样将后台生成的在内存中的图象显示到客户端Microsoft IE WebControls下载地址如何在DATAGRID中使用JAVASCRIPT脚本控制DataGrid中连接到下一页显示数据下载中文名文件时保存文件名乱码
问题
关于用ASP.net绘图的
问题
,请大虾指教那
数据库:DAO和ADO,Access和MSSQL等
Qaccess数据库SQL
问题
T有两个access的MDB文件(f1.mdb f2.mdb),每个文件里都有一个表为ta,ta有两个
字段
为"名称","数量",现在要合并这两个MDB文件的数据到第三个文件(f3.mdb该文件已经有一个空的表ta),第三个文件数据结构和这两个MDB文件一致。合并时如果名称相同则数量相加,我不想一条记录一条记录的处理。我在网上看到在access不同数据库中的表进行链接(
MS-SQL Server 基础类 - SQL语句
Oracle 高级技术
3,494
社区成员
18,710
社区内容
发帖
与我相关
我的任务
Oracle 高级技术
Oracle 高级技术相关讨论专区
复制链接
扫一扫
分享
社区描述
Oracle 高级技术相关讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章