SQL C ++ рдирд╣реАрдВ рд╣реИ, рди рд╣реА JavaScriptред рдЗрд╕рд▓рд┐рдП, рддрд╛рд░реНрдХрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдЕрд▓рдЧ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рд╣реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ:WHERE fncondX() AND fncondY()
= fncondX() && fncondY()
рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, PostgreSQL рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд╕рдорддреБрд▓реНрдп рд╢рд░реНрддреЛрдВ рдХреЛ "рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд" рдХрд░ рд╕рдХрддрд╛ рд╣реИ , рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ ... рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╣рдХрд░реНрдореА рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреА (рдФрд░ рдХреНрдпрд╛ рд╕рднреА рдкрд░) редрдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдФрд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЕрд╕рдорд╛рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ редрдбреЗрдЯрд╛ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд╡реАрдПрд▓рдПрд╕рдЖрдИ рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдХрд╛ рдЖрдзрд╛рд░ рд╣реИ , рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЙрди рдкрд░ рд╕рдВрдЪрд╛рд▓рди рди рдХреЗрд╡рд▓ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЗрдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдЬрд╣рд╛рдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЧрдгрдирд╛ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рдЬрд╣рд╛рдВ рдЙрдирдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред# 0: RTFM
рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдЙрджрд╛рд╣рд░рдг
рд╢реБрд░реВ :рдЬрдм рдЧрдгрдирд╛ рдХреНрд░рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ CASE
ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд╛рдХреНрдп рдореЗрдВ рд╢реВрдиреНрдп рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдРрд╕рд╛ рддрд░реАрдХрд╛ WHERE
рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ:
SELECT ... WHERE x > 0 AND y/x > 1.5;
рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк:
SELECT ... WHERE CASE WHEN x > 0 THEN y/x > 1.5 ELSE false END;
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдирд┐рд░реНрдорд╛рдг CASE
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЕрдиреБрдХреВрд▓рди рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
# 1: рдЯреНрд░рд┐рдЧрд░ рдореЗрдВ рд╣рд╛рд▓рдд
BEGIN
IF cond(NEW.fld) AND EXISTS(SELECT ...) THEN
...
END IF;
RETURN NEW;
END;
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди ... рдХреЛрдИ рднреА рд╡рд╛рджрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ SELECT
рдкрд╣рд▓реА рд╢рд░реНрдд рдЭреВрдареА рд╣реЛрдиреЗ рдкрд░ рд╕рдВрд▓рдЧреНрди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдиреЗрд╕реНрдЯреЗрдбIF
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╣реА :BEGIN
IF cond(NEW.fld) THEN
IF EXISTS(SELECT ...) THEN
...
END IF;
END IF;
RETURN NEW;
END;
рдЕрдм рдЖрдЗрдП рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦреЗрдВ - рдЯреНрд░рд┐рдЧрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреВрд░рд╛ рд╢рд░реАрд░ "рд▓рдкреЗрдЯрд╛" рдЧрдпрд╛ IF
ред рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рд╣рдореЗрдВ рдЗрд╕ рд╢рд░реНрдд рдХреЛ WHEN
-condition рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИ :BEGIN
IF EXISTS(SELECT ...) THEN
...
END IF;
RETURN NEW;
END;
...
CREATE TRIGGER ...
WHEN cond(NEW.fld);
рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЭреВрдареА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рд░реНрд╡рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдмрдЪрдд рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИред# 2: рдпрд╛ / рдФрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛
SELECT ... WHERE EXISTS(... A) OR EXISTS(... B)
рдЕрдиреНрдпрдерд╛, рдЖрдк рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рджреЛрдиреЛрдВ EXISTS
"рд╕рдЪреНрдЪреЗ" рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдкреВрд░реЗ рд╣реЛрдВрдЧреЗ редрд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ "рд╕рдЪ" рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрд╛рд░ (рдпрд╛ AND
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП "рдЭреВрдард╛" ) рд╣реИ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рддрд░рд╣ "рдЕрдкрдиреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмрдврд╝рд╛рдПрдВ" рддрд╛рдХрд┐ рджреВрд╕рд░рд╛ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рди рдХрд░реЗ?рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ - рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕реАрдХреНрдпреВ рдПрдВрдЯрд┐рдкрд░реНрдЯреЗрдиреНрдЯреНрд╕ рд▓реЗрдЦ рдХреЗ рд╡рд┐рд╖рдп рдХреЗ рдХрд░реАрдм рд╣реИ : рдПрдХ рджреБрд░реНрд▓рдн рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдЗрди рдХреЗ рдордзреНрдп рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧрд╛ редрдЖрдЗрдП рдЗрди рджреЛрдиреЛрдВ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ "рдкреЙрдк рдЗрди рдХреИрд╕" рджреЗрдЦреЗрдВ:SELECT ...
WHERE
CASE
WHEN EXISTS(... A) THEN TRUE
WHEN EXISTS(... B) THEN TRUE
END
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдордиреЗ ELSE
-рд╡рд▓реНрдпреВ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ , рдЕрд░реНрдерд╛рдд, рдпрджрд┐ рджреЛрдиреЛрдВ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдЭреВрдареА рд╣реИрдВ , рддреЛ CASE
рдпрд╣ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА NULL
, рдЬрд┐рд╕реЗ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд░реВрдк FALSE
рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ WHERE
редрдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╕реНрд╡рд╛рдж рдФрд░ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП:SELECT ...
WHERE
CASE
WHEN NOT EXISTS(... A) THEN EXISTS(... B)
ELSE TRUE
END
# 3: рдХреИрд╕реЗ [рдирд╣реАрдВ] рд╢рд░реНрддреЛрдВ рдХреЛ рд▓рд┐рдЦреЗрдВ
рд╣рдордиреЗ рдЗрд╕ рдЯреНрд░рд┐рдЧрд░ рдХреЗ "рдЕрдЬреАрдм" рдЯреНрд░рд┐рдЧрд░ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рджреЛ рджрд┐рди рдмрд┐рддрд╛рдП - рдЪрд▓реЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВредрд╕реНрд░реЛрдд:IF( NEW."_" is null or NEW."_" = (select '""'::regclass::oid) or NEW."_" = (select to_regclass('""')::oid)
AND ( OLD."" <> NEW.""
OR OLD."" <> NEW.""
OR OLD."" <> NEW.""
OR OLD."" <> NEW.""
OR OLD."" <> NEW."" ) ) THEN ...
рд╕рдорд╕реНрдпрд╛ # 1: рдЕрд╕рдорд╛рдирддрд╛ NULL рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ
рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдСрд▓- OLD
рдлреАрд▓реНрдбреНрд╕ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ NULL
ред рдХреНрдпрд╛ рд╣реЛрдЧрд╛?SELECT NULL <> 1 OR NULL <> 2;
рдФрд░ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ NULL
рд╕рдорд╛рди рд╣реИрдВ FALSE
, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИредрд╕рдорд╛рдзрд╛рди : -рдСрдкрд░реЗрдЯрд░ IS DISTINCT FROM
рд╕реЗ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ROW
, рдПрдХ рдмрд╛рд░ рдореЗрдВ рдкреВрд░реЗ рд░рд┐рдХреЙрд░реНрдб рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:SELECT (NULL, NULL) IS DISTINCT FROM (1, 2);
рд╕рдорд╕реНрдпрд╛ рд╕рдВрдЦреНрдпрд╛ 2: рдПрдХ рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:NEW."_" = (select '""'::regclass::oid)
NEW."_" = (select to_regclass('""')::oid)
рдЕрддрд┐рд░рд┐рдХреНрдд рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреНрдпреЛрдВ рд╣реИрдВ SELECT
? рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ to_regclass
? рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ, рдХреНрдпреЛрдВ? ..рдареАрдХ рдХрд░реЗрдВ:NEW."_" = '""'::regclass::oid
NEW."_" = '""'::regclass::oid
рд╕рдорд╕реНрдпрд╛ # 3: рдмреВрд▓ рд╕рдВрдЪрд╛рд▓рди рдкреНрд░рд╛рдердорд┐рдХрддрд╛
рд╕реНрд░реЛрдд рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВ:{... IS NULL} OR
{... } OR
{... } AND
( {... } )
рдЙрдл ... рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкрд╣рд▓реА рджреЛ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреА рд╕рдЪреНрдЪрд╛рдИ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреВрд░реА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ TRUE
, рдЕрд╕рдорд╛рдирддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗ рдмрд┐рдирд╛ред рдФрд░ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рдереЗредрдареАрдХ рдХрд░:(
{... IS NULL} OR
{... } OR
{... }
) AND
( {... } )
рд╕рдорд╕реНрдпрд╛ 4 (рдЫреЛрдЯрд╛): рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рдпрд╛ рд╕реНрдерд┐рддрд┐
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдореЗрдВ рдирдВрдмрд░ 3 рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдареАрдХ рдереАрдВ рдХреНрдпреЛрдВрдХрд┐ рддреАрди рд╢рд░реНрддреЗрдВ рдереАрдВред рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдмрдЬрд╛рдп, рдЖрдк рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ coalesce ... IN
:coalesce(NEW."_"::text, '') IN ('', '""', '""')
рддреЛ рд╣рдо NULL
"рдкрдХрдбрд╝", рдФрд░ OR
рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рдЬрдЯрд┐рд▓ рдмрд╛рдбрд╝ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИредрд╕рдВрдкреВрд░реНрдг
рд╣рдо рддрдп рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛:IF (
coalesce(NEW."_"::text, '') IN ('', '""', '""') AND
(
OLD.""
, OLD.""
, OLD.""
, OLD.""
, OLD.""
) IS DISTINCT FROM (
NEW.""
, NEW.""
, NEW.""
, NEW.""
, NEW.""
)
) THEN ...
рдФрд░ рдЕрдЧрд░ рд╣рдо рдЗрд╕ рдмрд╛рдд рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдЯреНрд░рд┐рдЧрд░ рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓- UPDATE
рдЙрддреНрдкреНрд░реЗрд░рдХ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ OLD/NEW
, рддреЛ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг , рддреЛ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЖрдорддреМрд░ рдкрд░ WHEN
-condition рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рдЬреИрд╕рд╛ рдХрд┐ # 1 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ ...