社区
基础和管理
帖子详情
如何返回当前id值,sql该怎么写呢?
zdnetchina
2005-09-19 09:34:20
表a有个主键id
id通过序列来递增
CREATE SEQUENCE SafeResult_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
当我插入一条记录并返回它的id,sql该怎么写呢?
...全文
215
6
打赏
收藏
如何返回当前id值,sql该怎么写呢?
表a有个主键id id通过序列来递增 CREATE SEQUENCE SafeResult_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10; 当我插入一条记录并返回它的id,sql该怎么写呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
沝林
2005-09-20
打赏
举报
回复
执行 select SafeResafsult_sequence.currval from dual;
ORA-02289: 序列(号)不存在
__________________________________________
执行这个语句要在取到nextval之后进行,也就是insert之后
SQL> select linenum.currval from dual;
select linenum.currval from dual
*
ERROR 位于第 1 行:
ORA-08002: 序列LINENUM.CURRVAL 尚未在此进程中定义
SQL> select linenum.nextval from dual;
NEXTVAL
----------
10001
SQL> select linenum.currval from dual;
CURRVAL
----------
10001
zdnetchina
2005-09-20
打赏
举报
回复
执行 select SafeResafsult_sequence.currval from dual;
ORA-02289: 序列(号)不存在
沝林
2005-09-20
打赏
举报
回复
insert into a(id,field1...) values(SafeResult_sequence.nextval,12...)
returning id into pnum;
----------------------------------------------
pnum是你在pl/sql中定义的变量,id 就放在这个变量里啊
zdnetchina
2005-09-20
打赏
举报
回复
to: duanzilin(寻)
insert into a(id,field1...) values(SafeResult_sequence.nextval,12...)
returning id into pnum;
----------------------------------------
returning id into pnum; pnum是什么?id写到什么地方去了.
执行后出现 ORA-00905: 缺少关键字
沝林
2005-09-19
打赏
举报
回复
1.select SafeResult_sequence.currval from dual;
2.也可以用
insert into a(id,field1...) values(SafeResult_sequence.nextval,12...)
returning id into pnum;
sasacat
2005-09-19
打赏
举报
回复
insert into t(id,name,...) values(seq1.nextval,....) return id into v_id;
然后以v_id 查询即可:
select * from t where id=v_id;
实现前后行相减的
SQL
该如何
写
?有两种方法!
背景 有时会有这样一种查询场景,需要对查询结果前后行操作,比如后一行减前一行。 比如有一张用户登录表,有登入和登出两行,需要相减简单计算在线时长。或者一张订单表,需要计算后一行的订单
id
和前一行的订单
id
差多少(假设订单号是单调递增的)。 针对这类场景,
SQL
语句改如何
写
呢? 表结构和数据构造 以统计前后行的订单号是否连续为例, 表结构: CREATE TABLE `t_test3` ( `i...
Sql
语句
返回
自增
Id
及获取
当前
表中自增列的相关内容
大家经常把自增
Id
设为主键,有时自增
Id
值
还有其他用途,所以需要
返回
,下面介绍
返回
自增
Id
的实现方法。
Oracle修改序列
值
为
ID
最大
值
;动态
SQL
修改序列
值
;
场景描述: 在使用kettle、pl
sql
等工具导数据到数据库后,因为导入的数据有
id
,而我的表的
id
使用的是序列,所以需要将序列
当前
值
设置为
id
的最大
值
,下一次项目调用的时候自动使用序列的下一个
值
,避免重复报错。 因为修改序列的语句中无法将变化
值
使用
sql
语句或者是加减,所以只能手动的去算差
值
然后在设置,很麻烦,类似于下面的
sql
就会报错,好像是这样直接运行,最后...
数据库插入数据
返回
当前
主键
ID
值
方法
当我们插入一条数据的时候,我们很多时候都想立刻获取
当前
插入的主键
值
返回
以做它用。我们通常的做法有如下几种: 1. 先 select max(
id
) +1 ,然后将+1后的
值
作为主键插入数据库; 2. 使用特定数据库的 auto_increment 特性,在插入数据完成后,使用 select max(
id
) 获取主键
值
; 但要获取此
ID
,最简单的方法就是在查询之后select @@
sql
server insert into获取
id
下一个
值
/插入自增
id
值
在oracle中可以使用sequence序列来获得下一个自增
id
值
,在
sql
server中如果需要手动插入
id
值
,可以先。获得
当前
最大
id
再插入。
基础和管理
17,382
社区成员
95,118
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章