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

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 34: Regel 34:
 
* https://forums.mysql.com/read.php?98,370486,371407#msg-371407
 
* https://forums.mysql.com/read.php?98,370486,371407#msg-371407
 
* https://ocelot.ca/blog/blog/2017/08/22/no-more-mysql-proc-in-mysql-8-0/
 
* https://ocelot.ca/blog/blog/2017/08/22/no-more-mysql-proc-in-mysql-8-0/
 +
* https://dev.mysql.com/doc/refman/8.0/en/information-schema-routines-table.html

Versie van 5 nov 2020 14:47

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