Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2011, 18h12   #1
Membre du Club
 
Homme Guenaël LE MERRER
consultant environnement et développement d'applications de base de données
Inscription : janvier 2006
Messages : 210
Détails du profil
Informations personnelles :
Nom : Homme Guenaël LE MERRER
Âge : 38
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : consultant environnement et développement d'applications de base de données
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : janvier 2006
Messages : 210
Points : 65
Points : 65
Par défaut Conversion de champs sur toute une base

Bonjour

Existe t'il un moyen d'écrire un code qui change automatiquement tous les champs de type bit en integer(2) dans tous les champs d'une base (concerné par ce format...)
la requête suivante fonctionne bien mais je voudrais éviter de la faire sur toute mes tables et mes champs concernés :
Code :
ALTER TABLE `ma_table` CHANGE `mon_champ` `mon_champ` INT(2);
merci
guen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 21h34   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
bonjour,

oui c'est possible, regardez ceci ou la doc de votre SGBD :

http://sqlpro.developpez.com/cours/s...e=partie2#L7.6
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 22h05   #3
Membre du Club
 
Homme Guenaël LE MERRER
consultant environnement et développement d'applications de base de données
Inscription : janvier 2006
Messages : 210
Détails du profil
Informations personnelles :
Nom : Homme Guenaël LE MERRER
Âge : 38
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : consultant environnement et développement d'applications de base de données
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : janvier 2006
Messages : 210
Points : 65
Points : 65
certes je vois bien la commande SQL mais comment le faire pour tous les champs de format bit de toutes les tables d'un base...? j'abuse peut-être !
guen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 22h25   #4
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
bonjour,

pour ceci il faut que vous recherchiez de la doc sur le site mysql avec les mots clef : information schema

Je n'utilise pas MySql personnellement mais vous devriez trouver votre bonheur.

http://dev.mysql.com/doc/refman/5.0/...on-schema.html

Ensuite vous n'avez plus qu'à corréler le tout !
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 09h09   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 331
Points : 18 331
Envoyer un message via MSN à CinePhil
Tu trouveras quelles sont les colonnes qui t'intéressent dans la vue information_schema.COLUMNS.

Et comme son nom l'indique, il n'y a pas de champs dans les tables mais des colonnes !

Ceci dit, INT(2) ou INT(5) ou INT(9) restera toujours un entier codé sur 4 octets.
Si tu veux un petit nombre, utilise plutôt TINYINT.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 10h15   #6
Membre du Club
 
Homme Guenaël LE MERRER
consultant environnement et développement d'applications de base de données
Inscription : janvier 2006
Messages : 210
Détails du profil
Informations personnelles :
Nom : Homme Guenaël LE MERRER
Âge : 38
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : consultant environnement et développement d'applications de base de données
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : janvier 2006
Messages : 210
Points : 65
Points : 65
bonjour

désolé pour la confusion champs/colonne mais je suis plus habitué à ACCESS...
effectivement, j'avais enlevé le (4) après INT.
J'avais bien réussi à identifier toutes les colonnes de ma base qui étaient au format BIT mais je n'ai pas réussi à écrire le script qui permet de les changer automatiquement... je l'ai donc fait sous ACCESS (car il s'agit d'un problème d'export des champs boolean d'Access qui sont transformés en BIT sous mysql par myodbc, alors que je voudrais des int pour ne pas perdre le -1...). j'ai donc contourné le problème mais il n'est pas pour autant résolu.
bonne journée
guen est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h53.


 
 
 
 
Partenaires

Hébergement Web