====== IF ======
===== Версии сервера =====
все
===== Доступно в =====
[[PSQL]]
===== Формат =====
1) Полный формат оператора
IF ()THEN
BEGIN
....
....
END
ELSE
BEGIN
....
....
END
2) сокращенный формат оператора
IF ()THEN
BEGIN
....
....
END
3) В случае наличия одного оператора, следующего в ветвлении алгоритма, операторные скобки BEGIN ... END можно опустить.
IF ()THEN
;
ELSE
;
===== Описание =====
Оператор условного перехода IF подмножества PSQL служит для организации ветвления алгоритмов триггеров и хранимых процедур.
Если условие истинно, то выполняется , иначе .
===== Пример =====
1. Использование в триггере.
CREATE OR ALTER TRIGGER TRIGG_MYTABLE_BIU_10 FOR MYTABLE
ACTIVE BEFORE INSERT OR UPDATE POSITION 10
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(MY_GENERATOR, 1);
IF INSERTING THEN
BEGIN
NEW.DATE_INS = CURRENT_TIMESTAMP;
NEW.USER_INS = CURRENT_USER;
END
ELSE
BEGIN
NEW.DATE_UPD = CURRENT_TIMESTAMP;
NEW.USER_UPD = CURRENT_USER;
END
END
2. Использование в хранимой процедуре.
CREATE OR ALTER PROCEDURE MY_PROC(
GROUP_ID INTEGER
)RETURNS(
ID INTEGER
,NAME VARCHAR(255)
)AS
BEGIN
FOR
SELECT TB.ID, TB.NAME
FROM MYTABLE TB
WHERE ((TB.GROUP_ID+0) = :GROUP_ID)
INTO :ID, :NAME
DO
IF (:ID > 10000) THEN
BEGIN
ID = :ID - 10000;
SUSPEND;
END
END
===== См. также =====
[[FOR]], [[WHILE]], [[SUSPEND]], [[INSERTING]], [[UPDATING]]
===== Источник =====