往数据库里插入blob,要先插空,然后update,但从插入数据不能判断哪条是最后插入的,
怎样可以获得最后插入的那条数据?
谢谢了。。。
[b]问题补充:[/b]
现在数据库确定了,我不能随便改,所以不能添加自增长的标识列。。。
但原本数据库里有个VARCHAR类型的,我给它添加了seq,让它每次增1,可以通过这个获得
最大的吗??
[b]问题补充:[/b]
To:ham
我小菜,刚开始写程序,你说的问题没有想到,现在写东西都只是简单的实现,好多情况都没考虑,呵呵。。。
另外你说的seqRow是我创建的sequence+Row吗??但是我执行说“此处不允许序号”。。
谢谢你了,哈哈。。。
可以用sequence进行操作.
使用
SELECT * FROM tableName WHERE seqRow=seqRow.CURRVAL;
就可以获取到最后一条记录了.
关于楼主这个问题...
如果在插入了一个空行之后,还没来得及更新,另外一个操作又往里插入了一个空行,这种情况楼主是准备怎么处理的?
先查询满足条件的数据集合
比如[code="java"]Collection result = findByHQLNative(hql, params);[/code]
然后再[code="java"]if (result == null || result.size() == 0)
return null;
else
return (T) result.iterator().next();[/code]
就是最后的那条数据了
Oracle中没有像SQL-Server和MySQL中的直接获取刚插入行的存储过程或函数.所以只能通过一个自增长的标识列进行获取.每次就获取标识列值最大的那一行数据,就是最后插入的了.[code="sql"]
SELECT * FROM table_name WHERE rowid=(SELECT max(rowid) FROM table_name);[/code]