php - 阻止 SELECT 直到结果可用

标签 php sql postgresql

我正在尝试为“长轮询”编写一个 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 事件传递负载的能力将不可用:

http://www.postgresql.org/docs/9.0/static/sql-notify.html

关于php - 阻止 SELECT 直到结果可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3472979/

相关文章:

php - 我可以从批量插入中检索 lastInsertId 吗?

PHP MySQL 插入行限制

php - 如何防止 PHP 中的 SQL 注入(inject)?

postgresql - 每次迁移时改变 uuid 列的学说

php - 为什么 echo 只打印 PHP 数组中的一个值?

javascript - 如何将日期插入数据库

mysql - 将sql命令命令写入文件

mysql - 通过触发器将表记录归档到另一个表(将每日表记录移动到每周表,每天)

python - SQLAlchemy PostgreSQL UPSERT 值数组引发 UnsupportedCompilationError

python - 设置 psycopg2 时出现问题(PostGreSQL/python 数据库)