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

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 12: Regel 12:
  
 
Online vind ik regelmatig oplossingen die gebruik maken van de systeemtabel <code>mysql.proc</code>. Deze bestaat echter niet in de nieuwere versies van MySQL [https://ocelot.ca/blog/blog/2017/08/22/no-more-mysql-proc-in-mysql-8-0/].
 
Online vind ik regelmatig oplossingen die gebruik maken van de systeemtabel <code>mysql.proc</code>. Deze bestaat echter niet in de nieuwere versies van MySQL [https://ocelot.ca/blog/blog/2017/08/22/no-more-mysql-proc-in-mysql-8-0/].
 +
 +
== information_schema.routines ==
 +
 +
Info over sprocs kun je vinden in <code>information_schema.routines</code>. Bv.:
 +
 +
<pre>
 +
select
 +
  *
 +
from
 +
  information_schema.routines
 +
where
 +
  routine_schema=database()
 +
  and
 +
  routine_type = "PROCEDURE";
 +
</pre>
 +
 +
Alleen mist de header met de input-parameters.
  
 
== Bronnen ==
 
== Bronnen ==

Versie van 5 nov 2020 16:46

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.routines

Info over sprocs kun je vinden in information_schema.routines. Bv.:

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

Alleen mist de header met de input-parameters.

Bronnen