Existe-t-il un moyen de mysqldump une table sans certains champs?
Laisse-moi expliquer:
J'ai une base de données MySQL appelée tests
. Dans tests
j'ai 3 tables: USER
, TOTO
et TATA
. Je veux juste mysqldump certains champs de la table USER
, donc excluant certains champs comme mail
, ip_login
, etc.
Comment puis-je faire ceci?
Essaye ça:
SELECT column1, column2, column10
FROM USER
INTO OUTFILE "c:/user.csv"
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY "\n";
Pour plus d'options, lisez page de documentation .
Cela ne peut pas être fait directement avec mysqldump. Cependant, vous pouvez créer une table temporaire ou une vue qui ne contient pas les données en question, puis vider les données résultantes. Dans le cas d'une vue, je pense que vous devrez utiliser INTO OUTFILE
plutôt que mysqldump pour obtenir les données souhaitées, mais l'utilisation d'une vue au lieu d'une table temporaire a l'avantage de ne pas prendre de place supplémentaire dans le SGBD.
L'autre option consiste à créer un analyseur pour le fichier afin de supprimer les champs dont vous ne voulez pas. Pour le dire légèrement, cela peut se compliquer très rapidement, c'est-à-dire que cela se compliquera en supposant que vous vouliez créer un analyseur robuste face aux caractères multi-octets, aux séparateurs de chaînes échappés, etc., etc. Mais pour le trivial ou l'un -cas d'utilisation, il peut toujours être une option valide.
Vous pouvez également utiliser Phpmyadmin pour ce faire. Créez une requête pour sélectionner les champs souhaités, puis choisissez la fonction "exporter" en bas de la page (cela exporte les résultats de votre requête, pas la table entière), et choisissez l'option "Personnalisé". Vous pouvez ensuite choisir SQL comme format - si vous le souhaitez, vous pouvez ensuite créer une série de requêtes UPDATE plutôt que INSERTS. Cela peut souvent être un moyen rapide de faire quelque chose comme ça.
De nombreux outils d'administration DB ont la possibilité d'effectuer une importation personnalisée. En particulier, j'ai accompli cela en utilisant Toad for MySQL pour transférer des données entre des tables à l'aide de PK d'auto-incrémentation.
J'ai enregistré un résultat de requête dans Excel à l'aide de l'Assistant d'exportation.
Vous pouvez ensuite exclure des colonnes à l'aide de l'importation Wizard en définissant le champ source sur: ignorer cette colonne