CREATE FUNCTION foo ()
RETURNS trigger AS
$func$
BEGIN
IF TG_OP = 'INSERT' THEN
EXECUTE format('INSERT INTO %s SELECT $1.*'
, 'samples_' || left(NEW.md5, 2);
USING NEW;
END IF;
RETURN NULL;
END
$func$ LANGUAGE plpgsql;
そしてEXECUTE
括弧は必要ありません。
必要に応じて引用しない限り、識別子は小文字に折りたたまれていることに注意してください(%I
%s
の代わりに format()
で 。
詳細: