Stored procedures kopiëren (MySQL): verschil tussen versies
Naar navigatie springen
Naar zoeken springen
Regel 13: | Regel 13: | ||
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 | + | == information_schema == |
− | Info over sprocs kun je vinden in <code>information_schema.routines</code>. | + | 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>: |
<pre> | <pre> | ||
+ | # routines | ||
+ | ########## | ||
+ | # | ||
select | select | ||
* | * | ||
Regel 26: | Regel 29: | ||
and | and | ||
routine_type = "PROCEDURE"; | routine_type = "PROCEDURE"; | ||
+ | |||
+ | |||
+ | # parameters | ||
+ | ############ | ||
+ | # | ||
+ | select | ||
+ | * | ||
+ | from | ||
+ | information_schema.parameters | ||
+ | where | ||
+ | specific_schema=database(); | ||
</pre> | </pre> | ||
− | |||
− | |||
== Bronnen == | == Bronnen == |
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
. Info over de input-parameters vind je in tabel information_schema.parameters
:
# routines ########## # select * from information_schema.routines where routine_schema=database() and routine_type = "PROCEDURE"; # parameters ############ # select * from information_schema.parameters where specific_schema=database();