Terbaik dengan USING
klausa EXECUTE
:
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;
Dan EXECUTE
tidak memerlukan tanda kurung.
Dan Anda mengetahui bahwa pengidentifikasi dilipat menjadi huruf kecil kecuali jika dikutip jika perlu (%I
bukannya %s
dalam format()
).
Selengkapnya:
- MASUKKAN dengan nama tabel dinamis dalam fungsi pemicu
- Bagaimana cara menggunakan TG_TABLE_NAME secara dinamis di PostgreSQL 8.2?