区切りステートメントは必要ありません。Play はファイルを複数のクエリに分割し、1 つのファイルは「;」で終了します。キャラクター。
複雑なトリガーを作成したい場合は、play がセミコロンの後でファイルを分割したくないので、二重のセミコロン ";;" でエスケープします。
各クエリは 1 つのセミコロンで終了し、トリガー内ではクエリを 2 つのセミコロンで終了します。
例 :
DROP TRIGGER IF EXISTS invoice_line_insert;
CREATE TRIGGER invoice_line_insert AFTER INSERT
ON invoice_line FOR EACH ROW
BEGIN
IF NEW.type = "DELIVERY" THEN
UPDATE invoice
SET invoice.etdelivery_amount = invoice.etdelivery_amount + NEW.amount
WHERE invoice.id_invoice = NEW.invoice_parent_id_invoice;;
ELSE
UPDATE invoice
SET invoice.etexpense_amount = invoice.etexpense_amount + NEW.amount
WHERE invoice.id_invoice = NEW.invoice_parent_id_invoice;;
END IF;;
UPDATE invoice
SET invoice.vatamount = (NEW.amount * (
SELECT vat.rate
FROM vat
WHERE vat.id_vat = NEW.vat_id_vat
)) + invoice.vatamount
WHERE invoice.id_invoice = NEW.invoice_parent_id_invoice;;
UPDATE invoice
SET invoice.itamount = invoice.vatamount +
invoice.etdelivery_amount +
invoice.etexpense_amount
WHERE invoice.id_invoice = NEW.invoice_parent_id_invoice;;
END;