Stored procedures kopiëren (MySQL): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 15: Regel 15:
 
== information_schema ==
 
== information_schema ==
  
Info over sprocs kun je vinden in <code>information_schema.routines</code>. Info over de input-parameters vind je in tabel <code>information_schema.parameters</code>:
+
Info over sprocs kun je vinden in <code>information_schema.routines</code>:
  
 
<pre>
 
<pre>
Regel 29: Regel 29:
 
   and
 
   and
 
   routine_type = "PROCEDURE";
 
   routine_type = "PROCEDURE";
 +
</pre>
  
 +
Info over de input-parameters vind je in tabel <code>information_schema.parameters</code>:
  
 +
<pre>
 
# parameters
 
# parameters
 
############
 
############

Versie van 5 nov 2020 14:52

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();

Bronnen