Rumah >pangkalan data >tutorial mysql >Bagaimanakah Nilai Lalai Boleh Meningkatkan Reka Bentuk Fungsi PostgreSQL untuk Parameter Input Boleh Ubah?
Fungsi dengan Parameter Input Boleh Ubah
Apabila mencipta prosedur tersimpan (fungsi) dalam PostgreSQL, terdapat keperluan untuk mengendalikan kemas kini jadual berdasarkan input parameter. Untuk menampung parameter input pembolehubah, satu pendekatan adalah dengan memperkenalkan parameter mod. Parameter mod ini mengawal parameter tertentu yang hendak digunakan dalam pertanyaan kemas kini.
Walau bagaimanapun, pendekatan alternatif ialah menggunakan nilai lalai untuk parameter fungsi.
Nilai Lalai
Dengan mentakrifkan nilai lalai untuk parameter fungsi, anda boleh memudahkan fungsi dan meningkatkan kebolehbacaan kod. Pertimbangkan contoh berikut:
CREATE OR REPLACE FUNCTION update_site(_name text, _city text DEFAULT NULL, _telephone int DEFAULT NULL) RETURNS int LANGUAGE plpgsql AS $func$ BEGIN IF _city IS NULL AND _telephone IS NULL THEN RAISE WARNING 'At least one not-null input value required!'; RETURN; -- nothing to update END IF; UPDATE "Sites" SET "City" = COALESCE(_city, "City") , "Telephone" = COALESCE(_telephone, "Telephone") WHERE "SiteName" = _name; END $func$;
Kelebihan Nilai Lalai:
Penggunaan:
Fungsi yang dikemas kini ini boleh digunakan dengan pelbagai notasi panggilan:
SELECT update_site('foo', 'New York'); -- no telephone
SELECT update_site(name => 'foo', _telephone => 123); -- no city
SELECT update_site('foo', _telephone => 123); -- still no city
Kecekapan
Kedua-dua pendekatan, menggunakan parameter mod atau nilai lalai, boleh menjadi cekap untuk operasi kemas kini yang mudah. Walau bagaimanapun, untuk senario yang lebih kompleks, nilai lalai mungkin memberikan penyelesaian yang lebih jelas dan lebih boleh diselenggara.
Pilihan Pendekatan
Pilihan terbaik zależy pada keperluan khusus. Jika lajur ditakrifkan sebagai BUKAN NULL, nilai lalai menawarkan pendekatan yang lebih mudah dan pantas. Untuk senario yang lebih kompleks yang melibatkan pertanyaan SELECT dengan output yang berbeza-beza, pertimbangkan untuk menggunakan jenis input VARIADIC atau polimorfik dan SQL dinamik.
Atas ialah kandungan terperinci Bagaimanakah Nilai Lalai Boleh Meningkatkan Reka Bentuk Fungsi PostgreSQL untuk Parameter Input Boleh Ubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!