-
Делаю ХП, можно ли как-то переписать более оптимально часть процедуры:
if (exists(select STUDY_UID
from STUDIES
where STUDY_UID = :STUDY_UID and
STUDIES.STUDY_FILES_COUNTER = 0)) then
delete from STUDIES
where STUDY_UID = :STUDY_UID;
Процедура должна удалять запись с ключом STUDY_UID, если поле STUDY_FILES_COUNTER равно нулю.
-
а for отменили?
-
А просто delete from STUDIES
where STUDY_UID = :STUDY_UID and
STUDY_FILES_COUNTER = 0; не работает?
-
Угу, уже [2] сам сделал. Что-то ступил сразу. Спасибо за обсуждение.
-
так if (exists(select STUDY_UID
from STUDIES
where STUDY_UID = :STUDY_UID and
STUDIES.STUDY_FILES_COUNTER = 0)) then
delete from STUDIES
where STUDY_UID = :STUDY_UID;
в общем случае не эквивалентно:
delete from STUDIES
where STUDY_UID = :STUDY_UID and
STUDY_FILES_COUNTER = 0;
если, конечно, STUDY_UID не PK, о чем ни слова)
-
>если, конечно, STUDY_UID не PK, о чем ни слова)
>>запись с ключом STUDY_UID
-
Дмитрий Белькевич (10.06.10 12:04) [5] ключ ключу рознь UQ и PK - несколько разные вещи, не так ли?
-
Знаю pk, знаю fk, uq не знаю.
-
UQ - уникальный индекс, PK - первичный ключ в данном случае нет разницы. FB автоматом создает индекс для PK
-
> в данном случае нет разницы. FB автоматом создает индекс > для PK
Я уж испугался, что в фб какой-то новый тип ключей появился :)
-
> turbouser © (13.06.10 01:28) [8]
вроде бы как uq допускает null`ы, а pk - нет. хотя как в fb сделано - не помню.
-
> Petr V. Abramov © (15.06.10 15:53) [10]
я и не говорю, что uq и pk одно и то же :)
|