我正在尝试为“长轮询”编写一个 PHP 脚本,在将新行添加到 (Postgres) 数据库表时返回数据。有没有办法让 SELECT 查询仅在返回结果时返回,否则阻塞?或者我应该在数据库之外使用另一种信号机制吗?
最佳答案
看看 LISTEN/NOTIFY:
The NOTIFY command sends a notification event to each client application that has previously executed LISTEN name for the specified notification name in the current database
http://www.postgresql.org/docs/8.4/static/sql-notify.html
您可以向表中添加“ON INSERT”触发器以触发 NOTIFY 事件。但是,您将需要另一种机制来确定哪些记录需要被选择,因为在 9.0 之前,使用 NOTIFY 事件传递负载的能力将不可用:
关于php - 阻止 SELECT 直到结果可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3472979/