我正在 PHP + Zend 框架上实现一个非常简单的会计程序。我设置了这个触发器:
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 的实例处理。