web-services - 调用从 PostgreSQL 返回 JSON 的网络服务

标签 web-services postgresql psql

有没有办法让 PSQL 中的函数调用返回 JSON 的 Web 服务,并使用此 JSON 在触发器调用中执行数据库中的某些操作?

最佳答案

psql 是命令行客户端应用程序。所以没有。

如果您指的是 pl/pgsql,服务器端函数语言,那么……还是不行。它在设计上无法建立网络连接、访问文件等。

您可以使用 PL/Python 或 PL/Perl 来执行此操作……但您不应该这样做。如果 Web 服务非常慢,存在 DNS 问题等,您的整个数据库可能会变慢,无法正常爬行。

而是使用 LISTENNOTIFY 与外部客户端一起处理工作队列并将结果存储在数据库中。使用 PostgreSQL 9.5 的 SKIP LOCKED 这可以很容易地同时完成。在 9.4 及更早版本中,最简单的方式是串行执行,或者使用一个 worker 管理多个异步请求。

这很像“如何从存储过程发送电子邮件”问题。您可以使用 plperl 或 plpython,但您不应该使用。

关于web-services - 调用从 PostgreSQL 返回 JSON 的网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34065673/

相关文章:

android - 如何使用 ksoap2 将字符串数组传递给 webservice?

javascript - 如何从 javascript 调用 Web 服务

postgresql - 将 postgresql 中的 UTC 时区转换为 EST(本地时间)

postgresql - 如何在 Postgresql 中获取 FK 引用的表

sql - 在 Postgres 中,如何从给定的 TIMESTAMP WITH TIME ZONE 列中提取月份(根据特定时区)?

java - 将 PgArray 或 java.sql.Array 转换为 Scala 集合

python - psycopg2 查询没有正确解析参数?

java - jax-ws 服务中的 "Operation Connection.commit is not allowed during a global transaction"

web-services - Coldfusion - HTTPS 错误/X.509 ws-security

postgresql - 使用psql时如何在postgres中选择模式?