如何实现这样的功能?向表中加入一条记录后,取得该记录的某个字段值

weizhihui1213 2006-04-14 09:44:29
一个Oracle表有字段:ID、Name、Description,其中ID是个自增的字段,我要执行下面这个SQL语句后,获得加入记录的ID值,请问如何实现?谢谢
insert into SecurityIdentity (Name,IdentityType) values ('test1','UserAccount')
...全文
160 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dp_555 2006-04-17
  • 打赏
  • 举报
回复
友情接分。。。
weizhihui1213 2006-04-17
  • 打赏
  • 举报
回复
呵呵,总觉得各位没有明白我的意思,这个ID是自动产生的,我要做的是:加入一条记录后,获得该记录的ID值,而这个ID不是MAX。
haisenmai 2006-04-15
  • 打赏
  • 举报
回复
强烈建议使用存储过程

create proc ist @Name char(9),@IdentityType char(9)
as
declare @SID int
select @SID=MAX(strid) from SecurityIdentity
if (@SID is null)
select @SID=1001
else
select @SID=@SID+1
insert into SecurityIdentity values (@SID,'test1','UserAccount')
go
调用就可以直接
exec ist 'test1','UserAccount'

如何 ??
haisenmai 2006-04-14
  • 打赏
  • 举报
回复
select top 1 id from table order by desc
降序查询 获得首记录
weizhihui1213 2006-04-14
  • 打赏
  • 举报
回复
难道我只能用Select,再查询一次吗?
weizhihui1213 2006-04-14
  • 打赏
  • 举报
回复
首先select max(ID) from table这个在目前的测试环境中就通不过,如在这之前表中有一些记录,ID值已经到了5000之后,而1000之前的记录已经被删掉了,现在我加入记录后,ID又从头开始了,如我加入了一条记录,它的ID值是53。(ID是数据库自动生成的)
凋零的老树 2006-04-14
  • 打赏
  • 举报
回复
没有更好方法的,一般都不用自动增长
悠云guo 2006-04-14
  • 打赏
  • 举报
回复
存储过程
weizhihui1213 2006-04-14
  • 打赏
  • 举报
回复
我不想执行了Insert后,用Select的SQL语句来获得。有没有什么方法可以不用再进行一次查询才能获得这个ID(这个ID不是表中记录的行号)。
Nuage 2006-04-14
  • 打赏
  • 举报
回复
select max(ID) from table 啊!
weizhihui1213 2006-04-14
  • 打赏
  • 举报
回复
haisenmai(我应该做得到):你的这个方法跟取max没有区别呀
注意:我不想再次人为控制的执行SQL语句

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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