我需要在对表进行SELECT操作之前调用postgreSQL中的FUNCTION。我的第一个想法是使用TRIGGER,但看起来你不能在选择时触发。执行函数首先在Postgres中
因此,要解决这个问题,我创建了一个VIEW,它可以同时在表和函数上运行select。即:
CREATE VIEW people_view AS
SELECT get_department(), name, title, department
FROM people_table
所以,简而言之...的get_department()函数将更新来自外部数据的部门列(这是所有采用国外的数据表和包装)。
问题是,该函数执行后名称,标题,部门被选中,而不是之前。所以如果我运行一次它不起作用。如果我运行它两次它(因为它在第一次运行后更新)。
对不起,如果这没有多大意义。我通常不做数据库工作。我想要做的是让“get_department()”在SELECT中首先执行。我试图把这个函数调用放在一个子查询中,但它仍然没有先执行。我留下的唯一想法可能是强制命令的明确联合?我不知道:-(。
基本上,我只是想在运行查询的人透明地SELECT之前执行一个函数...我想你不能用触发器做到这一点,如果有更好的解决方法,我会很乐意给它一展身手。
感谢, Isekal
这工作完美!我从来不知道是否存在(现在我没有做很多数据库工作)。不幸的是,我在9.2上,所以LATERAL不是一种选择(尽管我可能会升级)。 – isekal