renomage table MySql

Eléphant du PHP | 147 Messages

02 août 2005, 12:16

Salut

Se matin j'ai apris que free a fait un update de ses bases MySql. J'ai donc été voir si tout c'est bien passé et la stupeur ma table apelée thème ne fonctionne plus, le caractère 'è' n'est plus reconue.

requête SQL: Modifier

SHOW KEYS FROM `th�me` ;

MySQL a répondu:Documentation
#1300 - Invalid utf8 character string: '�me'

Il y a t'il une solutionpour renomer cette table?

Merci
NoNo

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2005, 12:16

tu peux le faire via phpMyAdmin

sinon c'est du coté de la commande ALTER TABLE qu'il faut regarder

Code : Tout sélectionner

ALTER TABLE table RENAME AS nouveau_nom

Petit nouveau ! | 4 Messages

02 août 2005, 17:30

tu peux le faire via phpMyAdmin
bonjour,
j'ai le même problème que NoNos. Malheureusement, je débute et est-ce que quelqu'un peut me détailler cette solution ?

merci beaucoup

Mammouth du PHP | 543 Messages

02 août 2005, 17:31

ouckileou a tout dit pourtant.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

02 août 2005, 17:35

2 solutions :

- tu sélectionnes la base qui contient la table concernée
- tu va dans l'onglet SQL, enfin là ou y'a un gros champ texte
- tu mets dedans la requête que j'ai donné ce-dessus (en remplaçant bien sûr "table" et "nouveau_nom" par tes infos)
- tu cliquettes sur "Exécuter"

OU

- tu sélectionnes la base qui contient la table concernée
- dans la liste à gauche, tu sélectionnes la table concernée
- tu cliques sur l'onglet "Opérations"
- tu cherches le champ texte précédé de "Changer le nom de la table pour : "
- tu entres le nouveau nom et tu cliquettes sur "Exécuter"

et voilà ;)

ceci sous réserve de la version de phpMyAdmin, les onglets/positions peuvent varier

donc avec la requête y'avait tout en fait... et elle est pas compliquée :roll:
quand on connait la requête et qu'elle simple, ça va plus vite de faire par SQL direct ;)

Petit nouveau ! | 4 Messages

02 août 2005, 17:38

merci beaucoup. J'essaie cela tout de suite.

Petit nouveau ! | 4 Messages

02 août 2005, 18:06

je pense avoir suivi les indications correctement, mais visiblement, il y a un autre problème. J'ai le message suivant :
#1146 - Table 'nom_de_la_base.cat�gories' doesn't exist
J'ai bien compris que je dois renommer ma table mais en fait, je ne sais pas quel nom de table je dois saisir : le nom initial de cette table étant "catégories". Ce nom apparait depuis aujourd'hui "cat�gories".

Merci pour votre aide.

Mammouth du PHP | 543 Messages

02 août 2005, 19:33

Essaye de mettre French (fr-utf-8) en langage dans phpmyadmin, a l'accueil.

Eléphant du PHP | 147 Messages

03 août 2005, 00:52

C'est fait mais cela ne marche pas, lors de la mise a jour les caratères spéciaux on été modifié et remplacé par ? dans l'affichage de phpmyadmin. J'ai essayer de mettre le ? a la place de mon caracère accentuer marche pas non plus.

Heureusement que ma table ne me sert pas j'espere que je vais pouvoir la virer

C'est promis je ne met plus d'accent dans le nom de mes tables (lol)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

03 août 2005, 08:46

cette requête ne fonctionne pas ?

Code : Tout sélectionner

ALTER TABLE catégories RENAME AS categories

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 août 2005, 10:45

Je crois que c'est l'inverse qu'il veulent faire

Si c'est suite à une migration de free, il est possible qu'ils aient changé l'encode et qu'ils n'acceptent plus les accents ....

Je ne sais pas exactement si tu as le choix d'encodage chez free ...

Mais comme vous l'avez bien fait remarqué : on ne met pas d'accents dans les noms SQL (bdd, tables, colonne) ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

03 août 2005, 10:56

J'ai bien compris que je dois renommer ma table mais en fait, je ne sais pas quel nom de table je dois saisir : le nom initial de cette table étant "catégories". Ce nom apparait depuis aujourd'hui "cat�gories".
Tu peux le faire depuis PHPMyAdmin et ça ne fonctionne pas ?

Sinon, sauvegarde ou exporte les données de la table et recrée la, en changeant le nom.

Petit nouveau ! | 4 Messages

03 août 2005, 16:01

En fait, la table avec un ? à la place du caractère accentué est définitivement inaccessible. Elle apparait dans les menus de requêtes et dans la structure de la base, mais elle n'est plus reconnue et est considérée comme inexistante.

C'est pour cela que la fonction RENAME AS ne peut pas fonctionner. (on ne peut pas renommer une table qui n'existe pas).

J'ai été obligé de re créer une table dans la base pour la remplacer. Je n'ai pas trouvé d'autre solution. Maintenant, bien sûr tout est rentré dans l'ordre.

Je note simplement que Free, où le site est hébergé, n'a répondu à aucun de mes mails.

Merci à tous pour vos réponses et il faut effectivement banir les caractères accentués dans le nom des bases ou des tables.

cordialement.

Eléphant du PHP | 147 Messages

03 août 2005, 16:22

Je peux meme pas la suprimer cette table sa fais brouillon un peu