PERFORM
adalah perintah plpgsql yang digunakan untuk panggilan fungsi batal. PLpgSQL berhati-hati dengan SELECT
yang tidak berguna pernyataan - SELECT
tanpa INTO
klausa tidak diperbolehkan. Tetapi terkadang Anda perlu memanggil suatu fungsi dan Anda tidak perlu menyimpan hasil (atau fungsi tidak memiliki hasil). Fungsi dalam SQL
dipanggil dengan SELECT
penyataan. Tapi itu tidak mungkin di PLpgSQL - jadi perintahnya PERFORM
diperkenalkan.
CREATE OR REPLACE FUNCTION foo()
RETURNS void AS $$
BEGIN
RAISE NOTICE 'Hello from void function';
END;
$$ LANGUAGE plpgsql;
-- direct call from SQL
SELECT foo();
-- in PLpgSQL
DO $$
BEGIN
SELECT foo(); -- is not allowed
PERFORM foo(); -- is ok
END;
$$;
PERFORM
pernyataan mengeksekusi parameter dan lupa hasilnya.
Contoh Anda perform 'create table foo as (select 1)';
sama seperti SELECT 'create table foo as (select 1)'
. Ini mengembalikan string "buat tabel foo as (pilih 1)" dan string ini dibuang.
EXECUTE
pernyataan mengevaluasi ekspresi untuk mendapatkan string. Pada langkah selanjutnya string ini dieksekusi.
Jadi EXECUTE 'create table ' || some_var || '(a int)';
memiliki dua langkah
- evaluasi ekspresi
'create table ' || some_var || '(a int)'
- jika
some_var
adalah mytab misalnya, lalu jalankan perintahcreate table mytab(a int)
PERFORM
pernyataan digunakan untuk panggilan fungsi, ketika fungsi tidak digunakan dalam pernyataan penugasan. EXECUTE
digunakan untuk evaluasi SQL dinamis - ketika bentuk perintah SQL diketahui saat runtime.