Stored procedures kopiëren (MySQL)

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Ik werk vaak met projectdatabases. Bij het starten van zo'n project, moet ik eerst alle relevante sprocs handmatig kopiëren. Dat kan gemakkelijker:

Show create procedure

Je kunt een heel eind komen met show create procedure <procedure-naam>:

show create procedure fetch_table;

mysql.proc

Online vind ik regelmatig oplossingen die gebruik maken van de systeemtabel mysql.proc. Deze bestaat echter niet in de nieuwere versies van MySQL [1].

information_schema

Info over sprocs kun je vinden in information_schema.routines:

# routines
##########
#
select 
   * 
from 
   information_schema.routines
where
   routine_schema=database()
   and
   routine_type = "PROCEDURE";

Info over de input-parameters vind je in tabel information_schema.parameters:

# parameters
############
#
select
   * 
from 
   information_schema.parameters
where
   specific_schema=database();

Om hieromheen een routine te schrijven voor kopiëren van sprocs, lijkt me een hoop gedoe.

Bronnen