====== 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]] ===== Источник =====