在插入触发器更新和查询操作之后,我有一个插入序列,我的问题是从查询接收到的数据不反映触发器执行的更新(即使数据库中的数据确实已更新)。
我正在使用 PHP、PostgreSQL 和 Propel 1.6 ORM(尽管这个问题可能与数据库和 ORM 无关)。
我有以下顺序:
使用 AJAX 在“book_vote”表中插入新行(投票)(列:“book_id”、“book_score”、“voter_id”)。
有一个 PostgreSQL after insert 触发器来更新“book”表中相应的 book “vote_count”和“average_score”列。
进行查询以获取“book”的新“vote_count”和“average_score”数据,并使用 AJAX 将该数据发送回客户端(以在投票后显示更新的值)。
这一切都发生在同一个 PHP 会话中,我的问题是我没有在 AJAX 响应中获得更新的“book”值。似乎查询是在执行数据库触发器之前执行的。有什么方法可以确保在数据库触发之后发生查询?