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
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.
FIELDS TERMINATED BY ','
vous manque et on suppose que vous délimitez par onglets par défaut.
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 .
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.
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.
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.