我的要求是在触发器执行时执行系统命令,如 (ls) 或 C 程序。有没有办法创建一个触发函数来解决这个问题。
最佳答案
你可以写触发函数Python , Perl或 Tcl , 并假设您使用 "untrusted"语言的版本,其中任何一个都可用于执行任意 shell 命令。该 shell 将在与 Postgres 服务器进程(通常是“postgres”)相同的用户下运行,因此您需要相应地设置权限。
例如,运行CREATE EXTENSION plpythonu
后,可以使用LANGUAGE plpythonu
编写触发函数,调用例如os.system()
.
请注意任何修改系统的命令,因为这些更改与您的数据库事务无关(因此您需要找到自己的方式来处理并发写入、事务回滚等)。
关于c - 在postgresql中执行系统命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194003/