PHP + Zend Framework で非常に単純な会計プログラムを実装しています。このトリガーを設定しました:
CREATE TRIGGER consolidate_balance BEFORE INSERT ON balance FOR EACH ROW
BEGIN
IF (NEW.amount IS NOT NULL) THEN
UPDATE accounts SET accounts.balance = accounts.balance + NEW.amount WHERE accounts.id = NEW.account_id;
END IF;
END
私のスクリプトは、テーブルへの挿入のみを行い、balance
テーブルから選択しaccounts
てバランスを取ります。
問題: PHP が INSERT クエリを実行すると、トリガーが起動されません (または機能しません)。ただし、MySQL ログからクエリをコピーして MySQL のコマンド ライン クライアントに貼り付けると、機能し、目的の結果が得られます (accounts
テーブルは適切に更新されます)。考え?
念のため、すべてのクエリは Zend_Db_Table_Row のインスタンスによって処理されます。