我有以下Oracle数据库。员工表使用order by子句以降序排列。表格列仅仅是解释场景的例子。Oracle:如何仅更新oracle数据库中的最新行
S.no Time_to_complete Project employee_id
3 23 project3 xx
2 22 project2 xx
1 34 project1 xx
我需要在数据库即
S.no Time_to_complete Project employee_id
3 25(updated) project3 xx
注意只更新的最新记录:本次更新是一个功能的一部分,我只能访问EMPLOYEE_ID
如何更新,只有Oracle中最新的一行?
update employee set time_to_complete=25 where employee_id=xx and rownum=1 order by s.no desc
回报
S.no time_to_complete Project employee_id
1 25(updated) project1 xx
什么是你的表的主键?是'独一无二'吗? – sstan
“最新”是什么意思?以你为例,我假定max s.no,但“latest”可能意味着“最后一个记录更新”,可能是其中的任何一个,没有updated_time列,你不知道它是哪一个。 –
对不起,我忘了。 S.no是主键,每当输入新数据时,它都会自动递增。 – user2332505