Hello list,

i'm quite amused by my own stupidity while trying to create the following 
trigger :


CREATE TRIGGER ECOUPON_UPDATE FOR ECOUPON AFTER UPDATE EXECUTE (
TRY
IF NEW.INVOICE_UUID IS NOT NULL AND NEW.CREDIT_UUID IS NOT NULL THEN BEGIN
    DELETE FROM SCHEMA1.AGG_INVOICE WHERE UUID = :OLD.UUID;
 END;

IF NEW.INVOICE_UUID IS NULL OR NEW.CREDIT_UUID IS NULL THEN BEGIN
    INSERT INTO SCHEMA1.AGG_INVOICE SELECT * FROM SCHEMA1.ECOUPON WHERE UUID = 
:NEW.UUID;
END;

CATCH
if $RC <> 100 THEN
STOP($RC, 'unexpected error in trigger');
)

table ecoupon :
CREATE TABLE "SCHEMA1"."ECOUPON"
(
        "UUID"               Varchar (50) ASCII    NOT NULL,
        "INVOICE_UUID"               Integer,
        "CREDIT_UUID"               Integer,
        PRIMARY KEY ("UUID")
)

table agg_invoice is an identical copy of ecoupon with identical data.

When executing an update on ecoupon whch sets both invoice_uuid and credit_uuid to non-null-values, the first if-clause is executed, but the delete-statement obviously isn't executed (Tested with STOP(..)).

The second if-clause is working as needed.
What am i  missing?

Thanks,

Flo

--

Florian Schmitz

______________________
acardo technologies AG
Königswall 18a
44137 Dortmund

fon: +49 (0) 2 31 / 58 44 97 - 0
fax: +49 (0) 2 31 / 58 44 97 - 21
mail: [EMAIL PROTECTED]
web: www.acardo.com

--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to