我有一个显示数据库内容的应用程序,该数据库每 5-10 分钟更新一次。加载数据库中的所有数据大约需要 5 分钟。我不想在每次刷新时重新加载数据库中的所有数据,而是只想加载新行或已更新的行的字段。
- 是否可以使用 sqlalchemy 检查更改的或新的字段(轮询更改)?
- 是否可以使用 sqlalchemy 等待更改的或新的字段(使用阻塞函数调用)?
如果重要的话,数据库是 postgres 数据库。
最佳答案
ProstgeSQL 有一个 NOTIFY/LISTEN 机制,可以与触发器一起使用来发送插入、删除和更新的通知。通知包含一个参数,例如表和操作。
看起来 SQLAlchemy 不支持此功能,可能是因为它不是 SQL 标准而是特定于 Postgres。
这里是一个使用 python 使用 NOTIFY/LISTEN 检查 prostgres 数据库中更改的示例:PostgreSQL LISTEN/NOTIFY
谷歌搜索 NOTIFY in PostgreSQL and python
可能会提供更多帮助。
关于python - 使用 sqlalchemy 等待行更新或行插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24285563/