Skip to content

Rutine in prožilci ​

Shranjene procedure in funkcije ​

Procedure in funkcije so v stranski vrstici pod Funkcije. Z desno tipko kliknite eno in izberite Odpri urejevalnik rutin, da vidite in uredite njeno definicijo.

Urejevalnik prikaže DDL rutine, kot ga vrne strežnik. Shranite, da zamenjate definicijo.

Pisanje rutin v urejevalniku SQL ​

Rutine lahko ustvarite tudi iz običajnega zavihka urejevalnika SQL. Razčlenjevalnik stavkov razume DELIMITER, zato se telo, polno podpičij, izvede kot en stavek in se ne razseka na drobce:

sql
DELIMITER $$

CREATE PROCEDURE monthly_totals(IN year_in INT)
BEGIN
  SELECT MONTH(created_at) AS month, SUM(total) AS total
  FROM orders
  WHERE YEAR(created_at) = year_in
  GROUP BY MONTH(created_at);
END$$

DELIMITER ;

Brez tega bi ; za vsakim notranjim stavkom predčasno končal CREATE PROCEDURE in strežnik bi ga zavrnil — to je običajen razlog, da rutina, ki deluje v konzoli, v grafičnem odjemalcu ne uspe.

Prožilci ​

Z desno tipko kliknite bazo in izberite Sprožilci, da odprete urejevalnik prožilcev za to bazo. Našteje prožilce, ki so tam definirani, in prikaže DDL vsakega.

Prožilce lahko pregledujete, urejate in brišete. Kot pri pogledih izbrisani prožilec ne odnese s seboj ničesar drugega.

Prožilci in množične operacije

Prožilec se sproži za vsako vrstico. Med velikim uvozom ali prenosom podatkov lahko to hitro operacijo spremeni v počasno in tudi podvoji delo, ki ga prenos že opravlja. Prenos podatkov ima možnost Vključi prožilce prav zato, da se odločite sami.

Kje se rutine še pojavijo ​

  • Prenos podatkov lahko poglede, procedure in funkcije kopira v drugo bazo — tudi v drug pogon, kjer bo morda treba narečje pozneje prilagoditi.
  • Dump SQL datoteke na bazi in vsaka varnostna kopija vključujeta poglede, procedure in funkcije — ustvarjene za tabelami, poglede v vrstnem redu odvisnosti. Dump posameznih tabel jih ne vključuje.
  • Dump SQL datoteke na tabeli — in vsaka varnostna kopija baze — vključuje prožilce tabele. Zapisani so za vrsticami, zato jih obnova podatkov ne sproži; prožilci PostgreSQL pridejo s svojo funkcijo prožilca, onemogočeni prožilci pa ostanejo onemogočeni.