Existe-t-il un moyen de créer par programme des procédures stockées à l'aide de MySQL? Je peux écrire une procédure stockée pour créer des bases de données et des tables en utilisant des instructions préparées, mais je reçois un message d'erreur indiquant qu'il n'est pas pris en charge pour créer des procédures stockées avec des instructions préparées. Je réalise que je peux le faire en PHP ou en Java, mais jusqu'à présent, j'ai gardé tous mes outils de gestion de schéma en tant que scripts SQL, et je voudrais éviter une dépendance de langue seconde si je le peux.Création de procédures stockées MySQL à l'aide de MySQL
1
A
Répondre
1
Une méthode que vous pouvez essayer est de générer dynamiquement l'instruction create procedure
dans SQL, puis d'utiliser select into outfile
pour vider l'instruction sur le disque local, puis de rechercher le fichier pour charger la procédure dans la base de données.
Voici un exemple rapide:
set @proc_name = 'my_proc';
set @body1 = 'select ''hello''; ';
set @body2 = 'select ''world''; ';
set @delimiter = '$$';
set @create_proc_stmt = concat(
'create procedure ',
@proc_name,
'() begin ',
@body1,
@body2,
' end ',
@delimiter
);
select @create_proc_stmt into outfile '/tmp/create_proc_stmt.sql';
delimiter $$
\. /tmp/create_proc_stmt.sql
delimiter ;
call my_proc();
1
Je pense que vous pouvez le faire en insérant un enregistrement dans le tableau INFORMATION_SCHEMA.ROUTINES
. Je ne l'ai pas essayé, mais cela devrait fonctionner (un jour dans le passé j'ai oublié d'ajouter --routines à mysqldump, et plus tard j'ai restauré toutes les procédures en vidant cette table).
Questions connexes
- 1. Procédures stockées MySQL
- 2. Mysql Procédures stockées
- 3. Procédures stockées MySQL
- 4. Profil Procédures stockées dans MySQL
- 5. Procédures stockées MySQL dans SVN
- 6. MySql Procédures stockées Paramètre Échapper
- 7. [MySQL]: procédures stockées et instructions de sélection
- 8. polymorphisme alternative pour les procédures stockées MySQL
- 9. serveur mysql: procédures stockées - quand dois-je créer les procédures stockées?
- 10. Test des procédures stockées avec MySQL
- 11. Procédures stockées MySql, transactions et annulations
- 12. mysql procédures stockées en utilisant php
- 13. Développer des procédures stockées MySQL avec Intellisense?
- 14. Comment sauvegarder des procédures stockées dans MySQL
- 15. MYSQL Erreur 1064 lors de l'importation de procédures stockées
- 16. Procédures stockées MySql: Comment sélectionner une table de procédure?
- 17. Création de procédures stockées avec SQLAlchemy
- 18. Liste des procédures/fonctions stockées Ligne de commande Mysql
- 19. Guide du débutant pour les procédures stockées avec MySQL?
- 20. procédures stockées dans scala.dbc
- 21. Quelle est la fiabilité des procédures stockées mySQL?
- 22. Problème du connecteur MySQL .NET avec les procédures stockées
- 23. Alternative aux procédures stockées
- 24. Dans mysql, les procédures stockées sont-elles plus efficaces?
- 25. Possible d'écrire des procédures stockées MySQL dans ruby?
- 26. Paramètres nommés pour les procédures stockées dans MySQL
- 27. Problèmes lors de l'appel des procédures stockées MySQL à partir de l'API C
- 28. Erreur MySQL 2014 - Commandes désynchronisées - lors de la tentative d'appel de procédures stockées consécutives
- 29. Différence entre les procédures stockées et les procédures stockées étendues
- 30. Création de Trigger MySQL
Merci pour la suggestion - malheureusement, il semble que INFORMATION_SCHEMA est une lecture seule table: http://dev.mysql.com/doc/refman/5.0/en/ information-schema.html – jnoss