B*****g 发帖数: 34098 | 1 一个procedure, 是用第一种方法好,还是第二种(id 是table的pk,unique index?
为什么? 谢谢
1.
select rowid,....
into lnRowi1d, ......
from tab1
something between
update tab1
set .....
where rowid = lnRowi1d
2.
select id,....
into lnId, ......
from tab1
something between
update tab1
set .....
where id = lnId |
c*****d 发帖数: 6045 | 2 绝对是2
为什么呢?万一发生row migration方法1就有问题了 |
B*****g 发帖数: 34098 | 3 谢谢。一会查一查row migration,不太懂。
【在 c*****d 的大作中提到】 : 绝对是2 : 为什么呢?万一发生row migration方法1就有问题了
|
B*****g 发帖数: 34098 | 4 sorry,我学过一点DBA,知道row migration,只是一下没想起来。看来生命不息,学习
不止。
【在 B*****g 的大作中提到】 : 谢谢。一会查一查row migration,不太懂。
|
c*****d 发帖数: 6045 | 5 或者这么说
你存完rowid之后,如果一些操作导致这一行的rowid改变了
以后你再以rowid作为where语句的条件就有问题了
【在 B*****g 的大作中提到】 : 谢谢。一会查一查row migration,不太懂。
|
B*****g 发帖数: 34098 | 6 谢谢。
如果用cursor ... for update, 好像记得也是隐含用rowid(这个不确定),会不会也
有影响?
【在 c*****d 的大作中提到】 : 或者这么说 : 你存完rowid之后,如果一些操作导致这一行的rowid改变了 : 以后你再以rowid作为where语句的条件就有问题了
|
c*****d 发帖数: 6045 | 7 如果是cursor select ... for update
至少我不知道会隐含用rowid
select ... for update只是上锁
【在 B*****g 的大作中提到】 : 谢谢。 : 如果用cursor ... for update, 好像记得也是隐含用rowid(这个不确定),会不会也 : 有影响?
|
B*****g 发帖数: 34098 | 8 谢谢。
会也
【在 c*****d 的大作中提到】 : 如果是cursor select ... for update : 至少我不知道会隐含用rowid : select ... for update只是上锁
|