Stored procedures kopiëren (MySQL)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

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