7
votes

Comment supprimer un nom de préfixe de chaque nom de table dans une base de données MySQL

J'ai une base de données Joomla MySQL avec une préfixe de nom de table de "Jos_" sur tous mes noms de table. Mais je voudrais le retirer de toutes mes tables. Je comprends comment renommer chaque table, une à la fois, mais j'ai 600 tables. Y a-t-il une requête facile à exécuter une requête SQL pour le faire?

Si quelqu'un a une solution, pourriez-vous poster la requête SQL exacte que je peux utiliser?


1 commentaires

J'espère qu'il n'y a pas de dépendances internes ici!


3 Réponses :


16
votes

Vous pouvez générer les instructions nécessaires avec une seule requête: xxx

enregistrer la sortie de cette requête dans un fichier et que vous avez toutes les affirmations dont vous avez besoin.

Ou si cela retourne 0 s et 1 S plutôt la statiste, voici la version à l'aide de Concat à la place: xxx < / pré>


3 commentaires

Assez sûr que vous recherchiez concat , pas || (ne fonctionne pas ma copie de MySQL, de toute façon).


|| fonctionne pour moi (mais j'exécute mon installation en mode ANSI)


J'ai ajouté la version concat pour les personnes pour qui || retourne 0 s et 1 s.



3
votes

Vous pouvez créer votre propre procédure stockée pour renommer vos tables, que vous n'avez pas besoin d'ouvrir un éditeur externe tout sera effectué sur le serveur:

CALL rename_tables('test', 'jos_', '');


0 commentaires

16
votes
  1. en phpmyadmin Sélectionnez toutes les tables de votre base de données.
  2. de la liste déroulante 'avec sélectionnée:' Choisissez 'Remplacer le préfixe de la table'
  3. Ensemble de-> to remplacement.
  4. fait

1 commentaires

OH MON DIEU. Cette solution est géniale. C'est comme ça que tu le fais