程序写出主键自增

lqly0626 2010-12-27 04:52:42
用程序写出oracle 主键id自增 vs2008 添加时不用手动录入id 自动自增添加id 这个怎么写的?
...全文
125 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyf_liyunfeng 2010-12-29
  • 打赏
  • 举报
回复
oracle序列,千万不要用数据库触发器,这样,程序员根本控制不了序列。会造成导入数据很多麻烦
lqly0626 2010-12-28
  • 打赏
  • 举报
回复
在vs2008里面在添加数据时写一个主键自增的程序 有详细的代码吗?是用三层结构的
wuyq11 2010-12-28
  • 打赏
  • 举报
回复
主键在insert时由trigger调用sequence
生成CREATE TABLE test(
id number(18,0),
name varchar2(20));

CREATE sequence test_seq start with 1 increment by 1 nomaxvalue nocycle;

CREATE OR REPLACE TRIGGER test_trig_autoinc
BEFORE INSERT ON test
FOR EACH ROW
BEGIN
IF (:new.ID IS NULL) THEN
SELECT test_seq.nextval INTO :new.ID FROM DUAL;
END IF;
END;
jason成都 2010-12-28
  • 打赏
  • 举报
回复
记下记录
yinmo1988 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 java447060786 的回复:]
select max(id) from table
读取最大值,返回最大值+1
[/Quote]
应该可以
lethwei 2010-12-27
  • 打赏
  • 举报
回复
设置一个自增的 indentifier 做主键, 然后参考这个
http://blog.csdn.net/lethwei/archive/2010/12/10/6068158.aspx
phil999 2010-12-27
  • 打赏
  • 举报
回复
自增列本来就是不用手工输入的,在UI里写上max(id)+1有点形式主意,不如留空
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wxr0323 的回复:]
用一个方法查询数据库中最大的ID 然后+1
这个ID就是你下一个插入数据的ID。
[/Quote]

这种方法行不能的,比如某次插入失败或者删除过之前ID最大的纪录之后,ID已经不是连续的了
java447060786 2010-12-27
  • 打赏
  • 举报
回复
select max(id) from table
读取最大值,返回最大值+1
lqly0626 2010-12-27
  • 打赏
  • 举报
回复
具体怎么实现的啊?帮帮忙啊。。。我不会写啊。。
子夜__ 2010-12-27
  • 打赏
  • 举报
回复
用一个方法查询数据库中最大的ID 然后+1
这个ID就是你下一个插入数据的ID。

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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