使用插入行中的数据触发

时间:2015-06-07 20:17:02

标签: postgresql

我需要编写一个函数,每次将新行插入名为users的表中时都会触发该函数。该表有三列:name, surname, id。每次添加新用户时,我都想自动触发CREATE USER,其中用户名是新插入行的id。例如,如果我添加John, Smith, jsmith行,我想要一个名为jsmith的新用户。 如何在CREATE USER中使用NEW,以便像在示例中一样,创建一个用户名为jsmith的用户?

1 个答案:

答案 0 :(得分:0)

我相信你要找的是pl / pgsql EXECUTE statement

  

EXECUTE命令字符串[INTO [STRICT] target] [USING expression [,...]];

这需要一个字符串,您可以随意构建它。因此,在您的情况下,您需要使用基于插入行的变量(来自{{1})连接一段固定的SQL(单词CREATE USER,以及您要传递以配置用户的任何选项)。记录)。

正如手册所提到的,在创建动态SQL以适当地为其上下文引用输入时,这很重要,在这种情况下,使用NEW函数引用用户名。

所以你的触发器功能可能大致如下:

quote_ident