【发布时间】:2016-04-05 09:42:12
【问题描述】:
我有一个简单的任务是将巨大的 MD5 值插入表(分区表)中,并创建了一个触发器和一个触发器函数来代替 INSERT 操作。在函数中,我检查了NEW.md5 的前两个字符以确定应该插入哪个表。
DECLARE
tb text;
BEGIN
IF TG_OP = 'INSERT' THEN
tb = 'samples_' || left(NEW.md5, 2);
EXECUTE(format('INSERT INTO %s VALUES (%s);', tb, NEW.*)); <- WRONG
END IF;
RETURN NULL;
END;
问题是如何将NEW.*连接到SQL语句中?
【问题讨论】:
-
请始终包含您的 Postgres 版本。而且我非常喜欢看到完整的函数定义,包括页眉和页脚。
标签: postgresql triggers plpgsql dynamic-sql