web-dev-qa-db-fra.com

erreur 1265. Données tronquées pour la colonne lors d'une tentative de chargement de données à partir d'un fichier txt

J'ai table dans la table mysql Table ressemble 

create table Pickup
(
PickupID int not null,
ClientID int not null,
PickupDate date not null,
PickupProxy  varchar (40) ,
PickupHispanic bit default 0,
EthnCode varchar(2),
CategCode varchar (2) not null,
AgencyID int(3) not null,

Primary Key (PickupID),
FOREIGN KEY (CategCode) REFERENCES Category(CategCode),
FOREIGN KEY (AgencyID) REFERENCES Agency(AgencyID),
FOREIGN KEY (ClientID) REFERENCES Clients (ClientID),
FOREIGN KEY (EthnCode) REFERENCES Ethnicity (EthnCode)
);

sample data from my txt file 
1065535,7709,1/1/2006,,0,,SR,6
1065536,7198,1/1/2006,,0,,SR,7
1065537,11641,1/1/2006,,0,W,SR,24
1065538,9805,1/1/2006,,0,N,SR,17
1065539,7709,2/1/2006,,0,,SR,6
1065540,7198,2/1/2006,,0,,SR,7
1065541,11641,2/1/2006,,0,W,SR,24

quand j'essaie de le soumettre en utilisant 

LOAD DATA INFILE 'Pickup_withoutproxy2.txt' INTO TABLE pickup;

il jette une erreur 

Code d'erreur: 1265. Données tronquées pour la colonne 'PickupID' à la ligne 1

J'utilise MySQL 5.2

8
Andrey

Cette erreur signifie qu'au moins une ligne de votre fichier Pickup_withoutproxy2.txt a dans sa première colonne une valeur supérieure à un entier (votre champ PickupId).

Un Int ne peut accepter que des valeurs comprises entre -2147483648 et 2147483647.

Examinez vos données pour voir ce qui se passe. Vous pouvez essayer de le charger dans une table temporaire avec un type de données varchar si votre fichier txt est extrêmement volumineux et difficile à voir. Assez facile à vérifier pour un int une fois chargé dans la base de données.

Bonne chance.

13
sgeddes

FIELDS TERMINATED BY ',' vous manque et on suppose que vous délimitez par onglets par défaut.

9
Bluebaron

J'ai rencontré ce problème avec une colonne qui aENUMvalues ​​('0', '1').
Quand j'essayais de sauvegarder un nouvel enregistrement, j’assignais la valeur 0 pour la variableENUM

Pour la solution : J'ai changéENUMvaleur variable de 0 à 1 et 1 en 2

3
Celik

J'ai eu ce problème en essayant de convertir une colonne varchar existante en enum. Pour moi, le problème était qu'il y avait des valeurs existantes pour cette colonne qui ne faisaient pas partie de la liste des valeurs acceptées de enum. Donc, si votre enum n'autorise que des valeurs, par exemple ('dog', 'cat'), mais qu'il existe une ligne avec bird dans votre table, le MODIFY COLUMN échouera avec cette erreur.

1
Liam Mayfair

Cette erreur peut aussi être le résultat de ne pas avoir la ligne,

FIELDS SPECIFIED BY ','

(si vous utilisez des virgules pour séparer les champs) dans votre syntaxe MySQL, comme décrit dans cette page des documents MySQL.

0
Max

J'ai eu le même problème. Je voulais éditer les valeurs ENUM dans la structure du tableau. Le problème était dû au fait que des lignes avaient été enregistrées auparavant et que les nouvelles valeurs ENUM ne contiennent pas de valeurs enregistrées.

La solution mettait à jour les anciennes lignes enregistrées dans la table MySql.

0
ivahidmontazer