Stored procedures kopiëren (MySQL): verschil tussen versies
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.