2010-11-13 13 views
2

J'ai importé des données de MySQL vers un fichier CSV. Maintenant, j'essaie de l'importer dans MySQL d'une autre machine. Mais je veux préserver les valeurs d'origine augmentées automatiquement de id.Importation de CSV vers MySQL sans perdre les données d'un champ auto-croissant

J'ai essayé ceci:

LOAD DATA INFILE '/tmp/region.csv' 
INTO TABLE regions 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
ESCAPED BY '\\' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES 

(id,name,parent_id,level) 

Mais cela ne fonctionne pas. De l'aide?

+0

Pouvez-vous dire de quelle façon il ne fonctionne pas? –

Répondre

2

Le champ "augmentation automatique" dont vous parlez est "auto increment". Pour le conserver, modifiez temporairement la table pour ne pas utiliser AUTO INCREMENT sur la colonne ID, puis une fois importée, modifiez-la.

par exemple

ALTER TABLE `table_name` CHANGE `id` `id` INT(11) UNSIGNED NOT NULL; 

Puis:

ALTER TABLE `table_name` CHANGE `id` `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY; 
+0

je pensais y at-il un certain commutateur pour le désactiver un moment, dans sqlserver il y a un ddl pour slove ce problème quand pour insérer des données en masse à db – mlzboy

0

Vous pouvez essayer de créer la table cible avec une colonne 'id' sans la propriété auto increment, charger le fichier csv, puis ajouter l'attribut auto increment à la colonne.