Mysql : Faire une recherche dans tout le schema - SQL/NoSQL - Programmation
Marsh Posté le 24-09-2010 à 14:46:33
Tu veux le faire pour permettre à un utilisateur de faire une recherche sur toutes tables en exploitation ?
Ou alors pour toi, pour retrouver une chaine de caractère dans une table car tu as zappé dans quelle table elle est ?
Marsh Posté le 24-09-2010 à 16:13:25
antac a écrit : Tu veux le faire pour permettre à un utilisateur de faire une recherche sur toutes tables en exploitation ? |
antac a écrit : Ou alors pour toi, pour retrouver une chaine de caractère dans une table car tu as zappé dans quelle table elle est ? |
Marsh Posté le 24-09-2010 à 16:19:33
Le plus simple (surtout si c'est un truc que tu feras 1x dans ta vie) à mon avis c'est de le faire dans un truc genre PL/SQL qui mouline ta base pour avoir toute la liste des DB, puis la liste des tables, puis la liste des champs et les matraques 1 à 1.
Marsh Posté le 30-09-2010 à 10:04:49
Le plus simple c'est de faire un export de ta base en fichier SQL, qui va te sortir un fichier texte (qui peut être conséquent) puis tu fais une recherche sur ce fichier texte.
Marsh Posté le 30-09-2010 à 10:26:38
Tu fais un select qui va générer des select sur toutes les champs de chaque table?
genre ça (oracle ici, mais on doit pouvoir faire pareil), et tu n'as plus qu'à exécuter le résultat (avec beaucoup de patience) :
Code :
|
Marsh Posté le 30-09-2010 à 10:28:19
Et s'il sait pas dans quelle base il l'a perdu, faire boucler par dessus toutes les bases.
ça doit être marrant de lancer quelque chose du genre sur un grosse base de prod
Surtout s'il sait plus exactement le champ et qu'il fait un LIKE %trucmachin%
Marsh Posté le 30-09-2010 à 10:30:31
esox_ch a écrit : Et s'il sait pas dans quelle base il l'a perdu, faire boucler par dessus toutes les bases. |
J'ai fait ça récemment sur une copie d'une base de prod - 450 tables, faut pas être pressé, et relativement désespéré.
Marsh Posté le 09-03-2011 à 09:50:12
antac a écrit : Le plus simple c'est de faire un export de ta base en fichier SQL, qui va te sortir un fichier texte (qui peut être conséquent) puis tu fais une recherche sur ce fichier texte. |
Oui, il me semble que c'est la solution la plus judicieuse. Merci .
Marsh Posté le 24-09-2010 à 13:02:28
Bonjour,
J'utilise MySQL et je voudrais faire une recherche dans tout le schema (~100 tables) d'une chaîne de caractère.
Comment peut-on faire ?