Mysql : Faire une recherche dans tout le schema

Mysql : Faire une recherche dans tout le schema - SQL/NoSQL - Programmation

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 ?

Reply

Marsh Posté le 24-09-2010 à 13:02:28   

Reply

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 ?

Reply

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 ?


 
 :non:  
 
 

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 ?


 
 :jap:  
 
 
 :)  

Reply

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. :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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.

Reply

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? :D
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 :
  1. SELECT 'select * from '||sys.user_tab_columns.table_name||' where '||sys.user_tab_columns.column_name||' = machainerecherchée;'
  2. FROM sys.user_tab_columns


Message édité par skeye le 30-09-2010 à 10:27:31

---------------
Can't buy what I want because it's free -
Reply

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 :o
Surtout s'il sait plus exactement le champ et qu'il fait un LIKE %trucmachin%  :lol:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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.
ça doit être marrant de lancer quelque chose du genre sur un grosse base de prod :o
Surtout s'il sait plus exactement le champ et qu'il fait un LIKE %trucmachin%  :lol:


 
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é.[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

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 :).


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed