Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggugurkan Fungsi PostgreSQL Dengan Selamat Tanpa Mengetahui Parameternya?
Dalam Postgres, mengurus fungsi yang disimpan dalam fail teks boleh menjadi mencabar apabila menambah atau mengalih keluar parameter pada fungsi sedia ada. Untuk menangani isu ini, kaedah kad bebas wujud untuk menggugurkan semua fungsi dengan nama tertentu, tanpa mengira bilangan atau jenis parameter.
Laksanakan pertanyaan berikut untuk menjana pernyataan DDL untuk menggugurkan semua fungsi dengan nama tertentu:
SELECT 'DROP FUNCTION ' || oid::regprocedure FROM pg_proc WHERE proname = 'my_function_name' AND pg_function_is_visible(oid);
Ganti 'my_function_name' dengan nama fungsi sebenar anda (sensitif huruf besar dan tanpa petikan berganda). Pertanyaan ini mengembalikan senarai pernyataan DROP FUNCTION dengan jenis parameter yang betul untuk semua lebihan fungsi.
Untuk pelaksanaan segera kenyataan drop, pertimbangkan untuk mencipta fungsi PL/pgSQL :
CREATE OR REPLACE FUNCTION f_delfunc(_name text, OUT functions_dropped int) LANGUAGE plpgsql AS $func$ DECLARE _sql text; BEGIN SELECT count(*)::int , 'DROP FUNCTION ' || string_agg(oid::regprocedure::text, '; DROP FUNCTION ') FROM pg_catalog.pg_proc WHERE proname = _name AND pg_function_is_visible(oid) INTO functions_dropped, _sql; IF functions_dropped > 0 THEN EXECUTE _sql; END IF; END $func$;
Untuk menggugurkan semua fungsi yang dinamakan 'my_function_name':
SELECT f_delfunc('my_function_name');
Fungsi ini akan mengembalikan bilangan fungsi yang digugurkan.
Atas ialah kandungan terperinci Bagaimana untuk Menggugurkan Fungsi PostgreSQL Dengan Selamat Tanpa Mengetahui Parameternya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!