sqlserver中的@@IDENTITY是返回最后插入的标识值,如果插入的是单行,则返回标识值(主键值),如果插入多行数据则返回多行标识值,@@IDENTITY存储最后一行的标识值。
oracle中对应的解决办法
1,插入单行数据
表tableA(f_id,f_name,f_dz)其中f_id是主键,自增长。v是一个number型的变量。
插入数据获得f_id值
insert into tableA(f_name,f_dz) values('圆圆','北京') returning f_id into v;
|
不仅仅能获得主键值,也可以获得其他列的值
insert into tableA(f_name,f_dz) values('圆圆','北京') returning f_name into v_char;
|
2,插入多行数据
可以使用序列来解决这个问题
表 xt_1,id是主键,建立序列xt_1_seq
向表中插入数据:
insert into xt_1 select * from xt_2;
select xt_1_seq.currval into v_id 这样最后一行的主键ID值就获得了
|
阅读(874) | 评论(0) | 转发(0) |