MySQL-Syntaxfehler bei DELIMITER vor CREATE TRIGGER

Ich versuche, einen Trigger, den ich mit Firebird erstellt habe, in einen MySql-Trigger umzuschreiben.

Ich habe wirklich keine Ahnung, was es sein könnte. Wenn mir jemand helfen könnte ... danke

Ich übermittle die SQL mit PHP wie folgt, und die Fehlermeldung lautet:

Ungültige Abfrage: Sie haben einen Fehler in Ihrer SQL-Syntax. In dem Handbuch, das Ihrer MySQL-Serverversion entspricht, finden Sie in Zeile 1 die richtige Syntax für "DELIMITER $ CREATE TRIGGER FP_PAGO_AI AFTER INSERT ON FORMA_PGTO FOR EACH R"

Der Code des Auslösers lautet:

$str[] = "
DELIMITER $

CREATE TRIGGER FP_PAGO_AU AFTER UPDATE ON FORMA_PGTO
FOR EACH ROW
BEGIN

    declare rec_count integer;
    declare pg_count integer;
    declare cp_pago integer;

    select count(*) from forma_pgto fp where fp.id_cpagar=new.id_cpagar into rec_count;
    select count(pago) from forma_pgto f where f.id_cpagar=new.id_cpagar and f.pago=1 into pg_count;

    /* Se todas parcelas estao pagas, entao setar conta paga */
    if (rec_count = pg_count) then
        update cpagar c set c.pago=1 where c.id=new.id_cpagar;
    /* Senao */
    else
        /* Se CPAGAR.PAGO = 1, recebe 0 */
        select cpg.pago from cpagar cpg where cpg.id=new.id_cpagar into cp_pago;
        if (cp_pago = 1) then /* Se cp_pago = 1 */
            update cpagar set pago=0 where id=new.id_cpagar;
        end if;
    end if;

END

END $

DELIMITER ;
";

Antworten auf die Frage(2)

Ihre Antwort auf die Frage