Stored procedures kopiëren (MySQL)
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
- 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://dev.mysql.com/doc/refman/8.0/en/information-schema-routines-table.html
- https://dev.mysql.com/doc/refman/8.0/en/information-schema-parameters-table.html
- https://dev.mysql.com/doc/refman/8.0/en/show-create-procedure.html