[MySQL] Remplacement dans toute la base de données
Résolu/Fermé
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
-
13 juin 2013 à 12:44
jee pee Messages postés 39578 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 avril 2024 - 13 juin 2013 à 18:17
jee pee Messages postés 39578 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 avril 2024 - 13 juin 2013 à 18:17
A voir également:
- [MySQL] Remplacement dans toute la base de données
- Formules excel de base - Guide
- Uptobox remplacement - Guide
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Célia doit nettoyer le tableau ci-dessous pour l’ajouter à la base de données de son entreprise. les données sont ensuite traitées automatiquement. quelles sont les 4 cellules qui risquent de poser problème ? ✓ - Forum Excel
- Désolé l'utilisation de la base de données a expiré epic games - Forum Jeux vidéo
4 réponses
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
13 juin 2013 à 17:59
13 juin 2013 à 17:59
Merci de ta réponse, je n'ai pas réussi à faire ça directement avec SQL, mais du coup j'ai fais ça en Java (je maîtrise mieux)
Voici ce que ça donne :
Voici ce que ça donne :
import java.sql.*; public class Replace { public static void main(String[] args) throws Exception { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd","root",""); Statement stmt = conn.createStatement(); ResultSet select = stmt.executeQuery( "select " + "concat('update ',table_name,' set ',column_name,' = replace(',column_name,',\"a\",\"A\");') " + "from information_schema.columns where table_schema = 'bdd'"); while (select.next()) { String query = select.getString(1); // UPDATE table_name SET column_name = REPLACE(column_name,"a","A"); Statement update = conn.createStatement(); try { update.execute(query); System.out.println(query); } catch (Exception e) { System.err.println(query); System.err.println(e); } update.close(); } stmt.close(); conn.close(); } }
jee pee
Messages postés
39578
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
16 avril 2024
9 221
13 juin 2013 à 12:55
13 juin 2013 à 12:55
Salut,
Je ne connais pas mysql, mais si je voulais faire une opération de ce type, sans me casser la tête, je passerais par la génération d'un script tout bête :
spool maj.sql
select 'update '||table_name||' set '||column_name||' = replace('||column_name||',"a","A");' from information_schema.columns;
Et donc j'obtiens un script sql qui contient autant de lignes que de colonnes dans les tables.
cdlt
Je ne connais pas mysql, mais si je voulais faire une opération de ce type, sans me casser la tête, je passerais par la génération d'un script tout bête :
spool maj.sql
select 'update '||table_name||' set '||column_name||' = replace('||column_name||',"a","A");' from information_schema.columns;
Et donc j'obtiens un script sql qui contient autant de lignes que de colonnes dans les tables.
cdlt
jee pee
Messages postés
39578
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
16 avril 2024
9 221
13 juin 2013 à 13:14
13 juin 2013 à 13:14
Ce que tu cherches à faire s'appelle du Sql Dynamique.
Sous Oracle c'est impossible à faire directement en sql. Il faut passer par la création de procédures ou de fonctions.
Sous Oracle c'est impossible à faire directement en sql. Il faut passer par la création de procédures ou de fonctions.
jee pee
Messages postés
39578
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
16 avril 2024
9 221
13 juin 2013 à 18:17
13 juin 2013 à 18:17
Chacun ses outils ;-)
Si on maitrise un editeur comme vi c'est tout simple, il suffit d'avoir la liste resultant de select table_name,column_name from information_schema.columns;
dans un fichier texte, et après avec des replace on reconstitue l'update.
Si on maitrise un editeur comme vi c'est tout simple, il suffit d'avoir la liste resultant de select table_name,column_name from information_schema.columns;
dans un fichier texte, et après avec des replace on reconstitue l'update.