Descriptions
Вызывается фоновым процессом. Удаляет из таблиц регистрации записи об удалениях (IS_DELETED = 1), если об удалениях знают все клиенты
 
Input Parameters
There are no input parameters for procedure CLEAR_DEL_LOGS
 
Output Parameters
There are no output parameters for procedure CLEAR_DEL_LOGS
 
Definition
CREATE PROCEDURE CLEAR_DEL_LOGS
AS
BEGIN
DELETE
FROM LOG_DB_PROFILE L
WHERE
LOG_IS_DELETED <> 0 /*Запись удалена*/
AND LOG_UPD_GEN IS NOT NULL /*Поколение установлено*/
AND ( LOG_UPD_GEN <= ( SELECT MIN( C.GEN ) FROM CLIENT C WHERE C.DB_ID <> L.LOG_DB_ID )/*Поколение записи меньше минимального поколения клиентов, исклю÷ая влядельца(все клиенты знают об удалении)*/
OR ( SELECT COUNT(*) FROM CLIENT C WHERE C.DB_ID <> L.LOG_DB_ID ) = 0/*О записи знает только владелец*/
);
/*====================Scema specific=============================*/
DELETE
FROM LOG_MASTER L
WHERE
LOG_IS_DELETED <> 0 /*Запись удалена*/
AND LOG_UPD_GEN IS NOT NULL /*Поколение установлено*/
AND ( LOG_UPD_GEN <= ( SELECT MIN( C.GEN ) FROM CLIENT C WHERE C.DB_ID <> L.LOG_DB_ID )/*Поколение записи меньше минимального поколения клиентов, исклю÷ая влядельца(все клиенты знают об удалении)*/
OR ( SELECT COUNT(*) FROM CLIENT C WHERE C.DB_ID <> L.LOG_DB_ID ) = 0/*О записи знает только владелец*/
);
/*---------------------------------------------------------------*/
DELETE
FROM LOG_DETAIL L
WHERE
LOG_IS_DELETED <> 0 /*Запись удалена*/
AND LOG_UPD_GEN IS NOT NULL /*Поколение установлено*/
AND ( LOG_UPD_GEN <= ( SELECT MIN( C.GEN ) FROM CLIENT C WHERE C.DB_ID <> L.LOG_DB_ID )/*Поколение записи меньше минимального поколения клиентов, исклю÷ая влядельца(все клиенты знают об удалении)*/
OR ( SELECT COUNT(*) FROM CLIENT C WHERE C.DB_ID <> L.LOG_DB_ID ) = 0/*О записи знает только владелец*/
);
/*===============================================================*/
END
This file was generated with EMS InterBase/FireBird Manager (www.ibmanager.com) at 11/13/2006 10:51 PM |
![]() ![]() ![]() |