c - 在postgresql中执行系统命令

标签 c postgresql shell unix rdbms

我的要求是在触发器执行时执行系统命令,如 (ls) 或 C 程序。有没有办法创建一个触发函数来解决这个问题。

最佳答案

你可以写触发函数Python , PerlTcl , 并假设您使用 "untrusted"语言的版本,其中任何一个都可用于执行任意 shell 命令。该 shell 将在与 Postgres 服务器进程(通常是“postgres”)相同的用户下运行,因此您需要相应地设置权限。

例如,运行CREATE EXTENSION plpythonu后,可以使用LANGUAGE plpythonu编写触发函数,调用例如os.system() .

请注意任何修改系统的命令,因为这些更改与您的数据库事务无关(因此您需要找到自己的方式来处理并发写入、事务回滚等)。

关于c - 在postgresql中执行系统命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194003/

相关文章:

linux - Tmux 在 arch linux 的 ZSH shell 中不起作用

bash - 在 Bash 注销时保存最后一个工作目录

c - 函数无法返回字符串

c++ - C/C++ 中的 bool 是什么?关键字还是宏?

c - 当 union 位于 c 结构体内部时,sizeof() 将返回什么?

postgresql - pg_dump 的文件输出在 MacOS 上去哪里?

c - 如何在 C 中跳过执行缓冲区溢出的行

postgresql - PostgreSQL 是否支持带 DRBD 的主动-主动集群?

postgresql - 在Azure容器应用程序中部署Postgres DB

linux - 将具有特定扩展名的文件符号链接(symbolic link)到 linux 中的另一个文件夹