IF (NEED_CHECK = 1) THEN
BEGIN
SELECT L1.UQ_ID FROM LOOKUP L1
WHERE L1.START_DATE <= CAST(NEW.TRANSAC_DATE AS DATE)
AND L1.END_DATE >= CAST(NEW.TRANSAC_DATE AS DATE)
AND L1.VALUE2 = (SELECT L2.VALUE2 FROM LOOKUP L2
WHERE L2.UQ_ID = NEW.LOOKUP_ID)
INTO :LOOKUP_NUM;
NEW.LOOKUP_ID = LOOKUP_NUM;
END
END ^
COMMIT ^
SET TERM ;^
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°Π±Π»ΠΈΡΠ΅
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ΅ΡΠ°ΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ° Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠ»ΠΈ ΡΡΠΈΠ³Π³Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΠ°, ΠΈΠ»ΠΈ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΈΠ³Π³Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π΅ Π΄Π°Π½Π½ΡΠΉ ΠΆΠ΅ ΡΡΠΈΠ³Π³Π΅Ρ, ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ». ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΡΠΈΠ³Π³Π΅ΡΠ° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠΌ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅Π±Ρ, Π΄Π°ΠΆΠ΅ ΠΎΠΏΠΎΡΡΠ΅Π΄ΠΎΠ²Π°Π½Π½ΠΎ.
ΠΡΠ»ΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²Ρ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ ΠΊ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΈΠ³Π³Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ ΡΠΈΠ³Π½Π°Π» ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±Π»ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅. ΠΡΠ»ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΡΡΡΠΊΡΡΡΡ ΡΡΡΠΎΠΊΠΈ Π²Π»ΠΈΡΠ΅Ρ Π½Π° (ΠΈΠ»ΠΈ Π½Π° Π½Π΅Π³ΠΎ Π²Π»ΠΈΡΠ΅Ρ) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½ Π² Π΄ΡΡΠ³ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
Π‘ΡΡΠ»Π°ΡΡΠΈΠ΅ΡΡ Π½Π° ΡΠ΅Π±Ρ ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ[125], ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠΎΠ±ΡΠΌ ΡΠ»ΡΡΠ°Π΅ΠΌ[126]. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ·Π»ΠΎΠΌ Π΄Π΅ΡΠ΅Π²Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΡΡΠΎΠΊΠΈ. ΠΡΠ±ΠΎΠΉ ΡΠ·Π΅Π» ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π΅ ΡΠΎΠ»ΠΈ: ΠΎΠ΄Π½Π°- ΡΠΎΠ»Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ ΡΠ·Π»ΠΎΠ² Π½ΠΈΠΆΠ΅ Π½Π΅Π³ΠΎ, Π° Π΄ΡΡΠ³Π°Ρ - ΡΠΎΠ»Ρ ΠΏΠΎΡΠΎΠΌΠΊΠ° ΡΠ·Π»Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π’ΡΠΈΠ³Π³Π΅ΡΡ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠ΄ΡΡ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠΉ DML: Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΌΠ΅ΡΠ°- ΡΠ°Π±Π»ΠΈΡ (Π³ΡΠ°ΡΠΎΠ²), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ , Π΄Π΅Π»Π°ΡΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡ Π΄Π΅ΡΠ΅Π²Π°. Π’ΡΠΈΠ³Π³Π΅ΡΡ Π΄Π»Ρ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠΈΡΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΎΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΈΠΊΠ»ΠΎΠ².
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ SQL Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ ΡΡΠΈΠ³Π³Π΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
CREATE TRIGGER 0_30_SILLY FOR ATABLE
BEFORE UPDATE
AS
BEGIN
UPDATE ATABLE SET ACOLUMN - NEW.ACOLUMN
WHERE ID = NEW.ID;
END ^
ΠΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ NEW Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠΎΠΊΠ΅ ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ ΡΠ΄Π°Π»ΡΡΡ ΡΡ ΠΆΠ΅ ΡΡΡΠΎΠΊΡ Π² ΡΡΠΈΠ³Π³Π΅ΡΠ΅.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ²
Firebird 1.0.x ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ² ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² DDL, a Firebird 1.5 Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½.
* ALTER TRIGGER ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΠΈΠ³Π³Π΅ΡΠ°, ΡΠΎΡ ΡΠ°Π½ΡΡ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ°.
* CREATE OR ALTER TRIGGER (Π²Π΅ΡΡΠΈΡ 1.5 ΠΈ Π²ΡΡΠ΅) ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΠΈΠ³Π³Π΅ΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ CREATE TRIGGER. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ALTER, ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ.
ΠΡΠ±Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΉ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ²
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
{ALTER TRIGGER ΠΠΠ―} |
{CREATE OR ALTER TRIGGER ΠΈΠΌΡ FOR {ΡΠ°Π±Π»ΠΈΡΠ° | ΠΏΡΠΎΡΠΌΠΎΡΡ}
[ACTIVE | INACTIVE]
[{BEFORE | AFTER} {DELETE | INSERT | UPDATE}]
[POSITION ΡΠΈΡΠ»ΠΎ]
AS <ΡΠ΅Π»ΠΎ-ΡΡΠΈΠ³Π³Π΅ΡΠ°>;
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ FOR ΠΠΠ―, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅ Π² CREATE TRIGGER, ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ALTER TRIGGER Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½ ΡΡΠΈΠ³Π³Π΅Ρ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ALTER TRIGGER Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ°. ΠΡΠ±ΠΎΠΉ Π°ΡΡΠΈΠ±ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΎΠΏΡΡΠ΅Π½Π½ΡΠΉ Π² ΡΡΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅, ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΡΡΠΈΠ³Π³Π΅Ρ SAVE_SALARY_CHANGE:
ALTER TRIGGER SAVE SALARY CHANGE INACTIVE;
ΠΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΡΠ°Π·Ρ (BEFORE ΠΈΠ»ΠΈ AFTER), Π’Π ΡΠΎΠ±ΡΡΠΈΠ΅ (UPDATE, INSERT ΠΈΠ»ΠΈ DELETE) ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π·Π°Π½ΠΎΠ²ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΡΡΠΈΠ³Π³Π΅Ρ SAVE_SALARY_CHANGE ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° Π½Π΅ ΠΏΠΎΡΠ»Π΅:
ALTER TRIGGER SAVE_SALARY_CHANGE
ACTIVE BEFORE UPDATE;
ΠΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π»Π° ΡΡΠΈΠ³Π³Π΅ΡΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π»Π° Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ°ΡΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ALTER TRIGGER Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½ΠΈΠΊΠ°ΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΊΡΠΎΠΌΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠΈΠ³Π³Π΅Ρ SET CUST NO, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ:
CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
BEFORE INSERT
AS
BEGIN
IF (NEW.CUST_NO IS NULL) THEN
NEW.CUST_NO = GEN_ID(CUST_NO_GEN, 1);
END^
ΠΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΡΠΎΡ ΡΡΠΈΠ³Π³Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π΄ΠΎΠ±Π°Π²Π»ΡΠ» Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΡ NEW CUSTOMERS ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π½ΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΠ°Π±Π»ΠΈΡΡ CUSTOMER:
SET TERM ^;
ALTER TRIGGER SET_CUST_NO
BEFORE INSERT AS
BEGIN
IF (NEW.CUST_NO IS NULL) THEN
NEW.CUST_NO = GEN_ID(CUST_NO_GEN, 1);
INSERT INTO NEW_CUSTOMERS(NEW.CUST_NO, CURRENT_DATE) END ^
SET TERM ;^
Π Π²Π΅ΡΡΠΈΠΈ 1.5 ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΠΈΠ³Π³Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΠΈΠ³Π³Π΅Ρ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠΈΠ³Π³Π΅Ρ Ρ ΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΡΠΎΡΡΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ CREATE Π½ΡΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° OR ALTER.
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΏΠ΅ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ "ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ" (Object in use), Π΅ΡΠ»ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΈΠ³Π³Π΅Ρ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, Π·Π°Π²ΠΈΡΡΡΠΈΠΉ ΠΎΡ Π½Π΅Π³ΠΎ. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΡΠΈΠ³Π³Π΅ΡΠ° Π½Π΅ ΡΡΠ°Π½Π΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π² Π‘ΡΠΏΠ΅ΡΡΠ΅ΡΠ²Π΅ΡΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠ°ΡΠ°Ρ Π²Π΅ΡΡΠΈΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΡΡΠ΅. ΠΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π° ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π²Π½ΠΎΠ²Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡ, ΡΠΎ ΡΠΌΠΎΠ³ΡΡ Π²ΠΈΠ΄Π΅ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ.
Π ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ .
Π Π²Π΅ΡΡΠΈΠΈ 1.5 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ALTER TRIGGER ... INACTIVE | ACTIVE ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ "ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ", Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π»Π° ΡΠ°Π±Π»ΠΈΡΡ. Π’Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ. ΠΡΠΈΡΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄ΠΈΠΌΡΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ²
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠΈΠ³Π³Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ. ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΠΈΠ³Π³Π΅ΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ SYSDBA ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ DROP TRIGGER.
ΠΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
DROP TRIGGER ΠΠΠ―;
ΠΠΌΡ ΡΡΠΈΠ³Π³Π΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΡΠΈΠ³Π³Π΅ΡΠ°. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΡΠΈΠ³Π³Π΅Ρ SET_CUST_NO:
DROP TRIGGER SET CUST NO;
! ! !
ΠΠ ΠΠΠΠ§ΠΠΠΠ. Π§ΡΠΎΠ±Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΈΠ³Π³Π΅Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ALTER TRIGGER ΠΈΠΌΡ INACTIVE.
. ! .
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ Π³Π»Π°Π²Π° ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ°Ρ Π°ΡΠ½ΡΡ Π³Π»Π°Π·ΡΡΡ Π² Π½Π°Ρ ΡΠΎΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Firebird ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ PSQL: ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΎΠ±ΡΡΠΈΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π²Π΅ΡΡΠΌΠ° Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΎΠΌ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠΎΡΠ΅Π½ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π²Π°ΡΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ , Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ.
ΠΠΠΠΠ 32. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΡΠΎΠ±ΡΡΠΈΡ.
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ PSQL - ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ - ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ PSQL ΠΏΡΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΎΡΠΌΠ΅Π½Π° Π²ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° BEGIN, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ END ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΡΠ»ΠΈ ΡΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΈΠ³Π³Π΅Ρ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡ ΠΏΠΎΡΡΠ»ΠΊΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ DML.
Π’ΠΈΠΏΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΡΡΠΈ ΡΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
* ΠΡΠΈΠ±ΠΊΠΈ SQL - Ρ. Π΅. ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ SQL, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ SQLCODE.
* ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Firebird, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡΠ΅ΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π΄Π°Π½Π½ΡΠΌ, ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌ ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. Π£ Π½ΠΈΡ Π΅ΡΡΡ Π΄Π΅Π²ΡΡΠΈ- ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΉΡΡ Ρ 3355, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄ GDSCODE. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠ΄ΠΎΠ² GDSCODE ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΠΎΠ±ΠΎΠ±ΡΠ°ΡΡΠΈΠ΅ Π³ΡΡΠΏΠΏΡ ΠΊΠΎΠ΄ΠΎΠ² SQLCODE, ΠΈ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΈ SQLCODE, ΠΈ GDSCODE.
* ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ "Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅" Π² ΠΊΠΎΠ΄Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅.