DROP PROCEDURE
DROP PROCEDURE â ÑдалиÑÑ Ð¿ÑоÑедÑÑÑ
СинÑакÑиÑ
DROP PROCEDURE [ IF EXISTS ]имÑ[ ( [ [Ñежим_аÑгÑменÑа] [имÑ_аÑгÑменÑа]Ñип_аÑгÑменÑа[, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ]
ÐпиÑание
DROP PROCEDURE ÑдалÑÐµÑ Ð¾Ð¿Ñеделение одной или неÑколÑкиÑ
ÑÑÑеÑÑвÑÑÑиÑ
пÑоÑедÑÑ. ÐолÑзоваÑелÑ, вÑполнÑÑÑий ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ, должен бÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑем пÑоÑедÑÑ(Ñ). Ðомимо имени пÑоÑедÑÑÑ Ð¾Ð±ÑÑно ÑÑебÑеÑÑÑ ÑказаÑÑ ÑÐ¸Ð¿Ñ ÐµÑ Ð°ÑгÑменÑов, Ñак как в базе даннÑÑ
могÑÑ ÑÑÑеÑÑвоваÑÑ Ð½ÐµÑколÑко пÑоÑедÑÑ Ñ Ð¾Ð´Ð½Ð¸Ð¼ именем, но Ñ ÑазнÑми ÑпиÑками аÑгÑменÑов.
ÐаÑамеÑÑÑ
IF EXISTSÐе ÑÑиÑаÑÑ Ð¾Ñибкой, еÑли пÑоÑедÑÑа не ÑÑÑеÑÑвÑеÑ. Ð ÑÑом ÑлÑÑае бÑÐ´ÐµÑ Ð²Ñдано замеÑание.
имÑÐÐ¼Ñ ÑÑÑеÑÑвÑÑÑей пÑоÑедÑÑÑ (возможно, дополненное ÑÑ ÐµÐ¼Ð¾Ð¹).
Ñежим_аÑгÑменÑаРежим аÑгÑменÑа:
INилиVARIADIC. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÑазÑмеваеÑÑÑIN(но ÑÑÑиÑе ÑледÑÑÑие замеÑаниÑ).имÑ_аÑгÑменÑаÐÐ¼Ñ Ð°ÑгÑменÑа. ÐамеÑÑÑе, ÑÑо на Ñамом деле
DROP PROCEDUREне обÑаÑÐ°ÐµÑ Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ на имена аÑгÑменÑов, Ñак как Ð´Ð»Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑии пÑоÑедÑÑÑ Ð¸ÑполÑзÑÑÑÑÑ ÑолÑко Ð¸Ñ ÑипÑ.Ñип_аÑгÑменÑаТип даннÑÑ Ð°ÑгÑменÑа или аÑгÑменÑов (возможно, дополненнÑй именем ÑÑ ÐµÐ¼Ñ), еÑли ÑаковÑе имеÑÑÑÑ. ÐодÑобноÑÑи ÑледÑÑÑ Ð½Ð¸Ð¶Ðµ.
CASCADEÐвÑомаÑиÑеÑки ÑдалÑÑÑ Ð¾Ð±ÑекÑÑ, завиÑÑÑие Ð¾Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ пÑоÑедÑÑÑ, и, в ÑÐ²Ð¾Ñ Ð¾ÑеÑедÑ, вÑе завиÑÑÑие Ð¾Ñ Ð½Ð¸Ñ Ð¾Ð±ÑекÑÑ (Ñм. Раздел 5.15).
RESTRICTÐÑказаÑÑ Ð² Ñдалении пÑоÑедÑÑÑ, еÑли Ð¾Ñ Ð½ÐµÑ Ð·Ð°Ð²Ð¸ÑÑÑ ÐºÐ°ÐºÐ¸Ðµ-либо обÑекÑÑ. ÐÑо поведение по ÑмолÑаниÑ.
ÐÑимеÑаниÑ
ÐÑли ÑÑÑеÑÑвÑÐµÑ ÑолÑко одна пÑоÑедÑÑа Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм именем, ÑпиÑок аÑгÑменÑов можно опÑÑÑиÑÑ. Ð ÑÑом ÑлÑÑае Ñакже ÑледÑÐµÑ Ð¾Ð¿ÑÑÑиÑÑ Ñкобки.
Ð PostgreSQL доÑÑаÑоÑно пеÑеÑиÑлиÑÑ ÑолÑко вÑ
однÑе аÑгÑменÑÑ (вклÑÑÐ°Ñ Ð°ÑгÑменÑÑ INOUT), Ñак как одноимÑннÑе подпÑогÑÐ°Ð¼Ð¼Ñ Ð½Ðµ могÑÑ Ð¸Ð¼ÐµÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñе ÑпиÑки вÑ
однÑÑ
аÑгÑменÑов. Ðоманда DROP на Ñамом деле не пÑовеÑÑÐµÑ ÐºÐ¾ÑÑекÑноÑÑÑ Ñипов Ð´Ð»Ñ Ð²ÑÑ
однÑÑ
аÑгÑменÑов (OUT), поÑÑÐ¾Ð¼Ñ Ð°ÑгÑменÑÑ, помеÑеннÑе OUT, ни на ÑÑо не влиÑÑÑ. Тем не менее, ÑекомендÑеÑÑÑ ÑказÑваÑÑ Ð¸Ñ
Ð´Ð»Ñ ÑоглаÑованноÑÑи Ñ ÑооÑвеÑÑÑвÑÑÑей командой CREATE.
ÐÐ»Ñ ÑовмеÑÑимоÑÑи Ñо ÑÑандаÑÑом SQL Ñакже возможно запиÑаÑÑ Ð²Ñе аÑгÑменÑÑ Ð»ÑбÑÑ
Ñипов (вклÑÑÐ°Ñ Ð°ÑгÑменÑÑ OUT) без маÑкеÑов Ñежим_аÑгÑменÑа. Ð ÑÑом ÑлÑÑае ÑÐ¸Ð¿Ñ Ð²ÑÑ
однÑÑ
аÑгÑменÑов (OUT) бÑдÑÑ ÑвеÑÑÑÑÑÑ Ñ ÑказаннÑми пÑи Ñоздании. ÐÑи ÑÑом Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°ÑноÑÑÑ, Ñак как в ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ Ð¼Ð°ÑкеÑов Ñежим_аÑгÑменÑа в ÑпиÑке аÑгÑменÑов неÑÑно, какое поведение ожидаеÑÑÑ. Ðоманда DROP попÑÑаеÑÑÑ Ð²ÑполниÑÑ Ð¿Ð¾Ð¸Ñк обоими ÑпоÑобами и вÑдаÑÑ Ð¾ÑибкÑ, еÑли бÑдÑÑ Ð½Ð°Ð¹Ð´ÐµÐ½Ñ Ð´Ð²Ðµ ÑазнÑе пÑоÑедÑÑÑ. ÐÐ»Ñ Ð¸ÑклÑÑÐµÐ½Ð¸Ñ Ñакой неоднознаÑноÑÑи ÑекомендÑеÑÑÑ Ñвно ÑказÑваÑÑ Ð¼Ð°ÑкеÑÑ IN, а не полагаÑÑÑÑ Ð½Ð° Ñо, ÑÑо они подÑазÑмеваÑÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ; Ñаким обÑазом бÑÐ´ÐµÑ Ð²ÑбиÑаÑÑÑÑ ÑÑадиÑионное поведение PostgreSQL.
ÐпиÑаннÑе пÑавила поиÑка дейÑÑвÑÑÑ Ñакже Ñ Ð´ÑÑгими командами, ÑабоÑаÑÑими Ñ ÑÑÑеÑÑвÑÑÑими пÑоÑедÑÑами, напÑÐ¸Ð¼ÐµÑ ALTER PROCEDURE и COMMENT ON PROCEDURE.
ÐÑимеÑÑ
ÐÑли ÑÑÑеÑÑвÑÐµÑ ÑолÑко одна пÑоÑедÑÑа do_db_maintenance, ÑÑой ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð±ÑÐ´ÐµÑ Ð´Ð¾ÑÑаÑоÑно, ÑÑÐ¾Ð±Ñ ÑдалиÑÑ ÐµÑ:
DROP PROCEDURE do_db_maintenance;
ÐÑи Ñаком опÑеделении пÑоÑедÑÑÑ:
CREATE PROCEDURE do_db_maintenance(IN target_schema text, OUT results text) ...
лÑÐ±Ð°Ñ Ð¸Ð· ÑледÑÑÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ ÑÐ´Ð°Ð»Ð¸Ñ ÐµÑ:
DROP PROCEDURE do_db_maintenance(IN target_schema text, OUT results text); DROP PROCEDURE do_db_maintenance(IN text, OUT text); DROP PROCEDURE do_db_maintenance(IN text); DROP PROCEDURE do_db_maintenance(text); DROP PROCEDURE do_db_maintenance(text, text); -- возможна неоднознаÑноÑÑÑ
Ðднако поÑледнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° бÑÐ´ÐµÑ Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñной, еÑли ÑÑÑеÑÑвÑеÑ, напÑимеÑ, ÑÐ°ÐºÐ°Ñ Ð¿ÑоÑедÑÑа:
CREATE PROCEDURE do_db_maintenance(IN target_schema text, IN options text) ...
СовмеÑÑимоÑÑÑ
ÐÑа команда ÑооÑвеÑÑÑвÑÐµÑ ÑÑандаÑÑÑ SQL, но дополнена ÑаÑÑиÑениÑми PostgreSQL:
СÑандаÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ ÑдалÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑой ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑолÑко Ð¾Ð´Ð½Ñ Ð¿ÑоÑедÑÑÑ.
Указание
IF EXISTSÑвлÑеÑÑÑ ÑаÑÑиÑением.ÐозможноÑÑÑ ÑказÑваÑÑ ÑÐµÐ¶Ð¸Ð¼Ñ Ð¸ имена аÑгÑменÑов ÑвлÑеÑÑÑ ÑаÑÑиÑением, а пÑавила поиÑка пÑи Ñказании Ñежимов могÑÑ Ð¼ÐµÐ½ÑÑÑÑÑ.