incongruenza dopo importazione file .csv

Ciao ragazzi,

ho importato un immenso file con estensione .csv in SQLyog. Però, ho riscontrato un'incongruenza: per soli due campi della mia tabella i valori non corrispondono a quelli presenti nel file originale ma ho valori identici  e non riesco a capire neanche da dove li abbia presi.

Cosa può essere successo? Come posso risolvere questa situazione?

Se può esservi utile, vi dico anche ho fatto anche la prova con un altro file .csv facente parte del mio DB e sempre per gli stessi campi, ho lo stesso valore.

I campi che assumono sempre il valore '2147483647' sono 'site_session_id' e 'domain_id'.

La dichiarazione della tabella è la seguente:

CREATE TABLE comscore.january_2008( machine_id int(10), site_session_id int(30), domain_id int(50), ref_domain_name varchar(100), pages_viewed int(2), duration varchar (2), event_date int(10), event_time varchar(10), tran_flg varchar(2), prod_category_id varchar(2), prod_name varchar(15), prod_qty varchar(2), prod_totprice varchar(10), basket_tot varchar(4), hoh_most_education int(3) DEFAULT NULL, census_region int(3) DEFAULT NULL, household_size int(3) DEFAULT NULL, hoh_oldest_age int(3) DEFAULT NULL, household_income int(3) DEFAULT NULL, children int(2) DEFAULT NULL, racial_background int(3) DEFAULT NULL, connection_speed int(3) DEFAULT NULL, country_of_origin int(5) DEFAULT NULL, zip_code int(5) DEFAULT NULL, domain_name varchar(100) ) ENGINE=InnoDB DEFAULT CHARSET=latin1

Il file .csv si presenta nella seguente maniera:

machine_id,site_session_id,domain_id,ref_domain_name,pages_viewed,duration,event_date,event_time,tran_flg,prod_category_id,prod_name,prod_qty,prod_totprice,basket_tot,hoh_most_education,census_region,household_size,hoh_oldest_age,household_income,children,racial_background,connection_speed,country_of_origin,zip_code,domain_name 1340219,395800808318,12445415112264408298,ASK.COM,1,2,20080120,0:30:15,,,,,,,99,3,6,7,1,1,1,0,0,36251,adammale.com 1340219,395800939390,11754294580809077328,ASK.COM,13,19,20080120,0:10:43,,,,,,,99,3,6,7,1,1,1,0,0,36251,ask.com 1340219,395801004926,9591504199961792550,E-CUTIES.COM,1,0,20080120,0:06:54,,,,,,,99,3,6,7,1,1,1,0,0,36251,wildmatch.com

Spero possiate aiutarmi! Grazie.

inviato 6 anni fa
lilux
X 0 X

Il numero 2147483647 corrisiponde al più grosso numero che puoi memorizzare in un campo INT (4 byte). Probabilmente stai tentando di inserire dei valori superiori a questo che quindi vengono troncati.

Al posto del campo int usa il BIGINT che è a 8 byte.

 :bye:

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

395800808318 non mi sembra a 4 byte...comunque ho provato e purtroppo non funziona ancora!  :tichedoff:

Altri suggerimenti?

Intanto provo qualche altro tipo e vi faccio sapere!  :bye:

risposto 6 anni fa
lilux
X 0 X

395800808318 necessità di più di 4 byte per essere memorizzato, comunque che numero inserisce?

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

Purtroppo inserisce sempre 2147483647--

risposto 6 anni fa
lilux
X 0 X

riporta la nuova "create table"

 :bye:

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

Grazie!

CREATE TABLE `february_2008` (                     

                 `machine_id` int(10) DEFAULT NULL,               

                 `site_session_id` bigint(64) unsigned NOT NULL, 

                 `domain_id` bigint(64) unsigned NOT NULL,       

                 `ref_domain_name` int(100) DEFAULT NULL,         

                 `pages_viewed` int(2) DEFAULT NULL,             

                 `duration` varchar(2) DEFAULT NULL,             

                 `event_date` int(10) DEFAULT NULL,               

                 `event_time` varchar(10) DEFAULT NULL,           

                 `tran_flg` varchar(2) DEFAULT NULL,             

                 `prod_category_id` varchar(2) DEFAULT NULL,     

                 `prod_name` varchar(15) DEFAULT NULL,           

                 `prod_qty` varchar(2) DEFAULT NULL,             

                 `prod_totprice` varchar(10) DEFAULT NULL,       

                 `basket_tot` varchar(4) DEFAULT NULL,           

                 `hoh_most_education` int(3) DEFAULT NULL,       

                 `census_region` int(3) DEFAULT NULL,             

                 `household_size` int(3) DEFAULT NULL,           

                 `hoh_oldest_age` int(3) DEFAULT NULL,           

                 `household_income` int(3) DEFAULT NULL,         

                 `children` int(2) DEFAULT NULL,                 

                 `racial_background` int(3) DEFAULT NULL,         

                 `connection_speed` int(3) DEFAULT NULL,         

                 `country_of_origin` int(5) DEFAULT NULL,         

                 `zip_code` int(5) DEFAULT NULL,                 

                 `domain_name` varchar(100) DEFAULT NULL         

               ) ENGINE=InnoDB DEFAULT CHARSET=latin1   

risposto 6 anni fa
lilux
X 0 X

Per escludere che si tratti di un problema di SQLYog dovresti provare ad effettuare il caricamento del file direttamente con le funzioni di MySQL che ti ho segnalato nell'altra discussione.

 :bye:

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

Scusa, se approfitto della tua gentilezza...mi linkeresti la discussione che devo guardare?

risposto 6 anni fa
lilux
X 0 X

Ho risolto definendolo varchar!

Grazie di tutto!

risposto 6 anni fa
lilux
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda