|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
[MySQL] Inserimento dati in db
Ho creato un database con mysql e ora dovrei caricarci sopra dei dati, come faccio?
Nel senso, so ke devo usare il comando: Codice:
LOAD DATA LOCAL INFILE 'percorso/nomefile.txt' INTO TABLE nometabella;
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
|
|
|
|
#2 | |
|
Member
Iscritto dal: May 2006
Città: Bari
Messaggi: 274
|
Quote:
Premettendo che DEVI AVERE UN FILE "GIUSTO" (ovvero con la sintassi mysql giusta), il comando per caricare tutto nel mysql è (ovviamente da riga di comando): Codice:
entri nel mysql: mysql -u root -p crei un database (se non è stato già creato) CREATE DATABASE IF NOT EXISTS nomeDatabase; utilizzi il database creato USE nomeDatabase; carichi il file (nomeFile può essere per esempio nomefile.txt . ATTENZIONE A NON METTERE IL ; ALLA FINE) ./nomeFile oppure in alternativa source nomeFile (nn mi ricordo perfettamente ma dovrebbero essere questi i comandi) p.s.: per questo passaggio ti consiglio di copiare il file nella cartella del mysql.exe che in genere è mysql/bin/ nel file dovresti avere qualcosa del tipo: Codice:
CREATE TABLE employees (
SSN varchar (30) NOT NULL,
firstName varchar (30) NOT NULL,
lastName varchar (30) NOT NULL,
birthday date NOT NULL,
employeeType varchar (30) NOT NULL,
departmentName varchar (30) NOT NULL,
PRIMARY KEY (SSN)
);
INSERT INTO employees VALUES ('920-58-4918', 'Patricia', 'Johnson', '1961-4-5',
'hourlyEmployee', 'R&D');
Non sò se ho reso l'idea
__________________
MY PC --> Seasonic M12-500Watt + Asus P5B Deluxe WiFi/AP + Intel Q9550 + 4 GB G.Skill 1066Mhz + 1 Hd W.D. 74 GB Raptor 10kRpm + Seagate 750GB + Asus Nvidia 9800GTX! |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Mar 2009
Messaggi: 70
|
Io ho inserito de valori con questa formattazione e poi l'ho caricati con quel comando ovvero :
load data local infile 'NOME_FILE.txt' into table NOME_TAB fields terminated by ';' enclosed by '\''; 0;'skipper'; 1;'grinder'; 2;'tattico'; 3;'timoniere'; 4;'velista'; 5;'armatore'; prova e se hai bisogno ancora fatti pure sentire....ciaoooo |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Quote:
Non è quello ke intendevo io. Io ho già il database creato con tutte le mie belle tabelle (ke al momento sono vuote). X riempirle senza fare una ad una con il comando INSERT INTO volevo riempirle passando x riga di comando un file .txt, la mia domanda era: nel riempire il file txt devo tenere qualke formattazione particolare? Tipo spazi tra i dati da inserire, ecc...
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Quote:
PS: ho provato e mi dice ke non trova il file nn capisco il motivo!!!! ho scritto così: load data local infile 'C:\Documents and Settings\Fabietto\Desktop\Nuova cartella\medico.txt' into table medico;
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale Ultima modifica di Fabietto206 : 14-03-2009 alle 15:05. |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Un altra domanda: se ho 2 tabelle in cui in una ce un'attributo ke è chiave esterna nell'altra, i valori di quell'attibuto devono essere identici nell 2 tabelle giusto?
Ad esempio ho: Dati (cf, nome, cognome) con cf chiave primaria recapito (cf, indirizzo, città, tel) con cf chiave primaria e chiave esterna nella tabella dati. Ecco i valori di cf nelle 2 tabelle devono essere gli stessi??
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
|
|
|
|
#7 | |
|
Member
Iscritto dal: May 2006
Città: Bari
Messaggi: 274
|
Quote:
Cmq nella tabella Recapito dovresti avere una chiave primaria e poi anche una colonna con la chiave esterna (FOREIGN KEY) al campo "cf" della tabella dati. quindi i valori di questa colonna devono essere corrispondenti alla tabella dati es: Dati cf | nome | cognome ----------------------------- 01 | pippo | pippa 02 | pluto | pluta Recapito cf | fkcfdati | indirizzo | tel | ecc -------------------------------------------- 01 | 01 | via vla vla | 000 | ecc 02 | 02 | aspdoapd | 022 | ecc 03 | 01 | clalcalcla | 1212 | ecc come vedil terzo campo punta sempre al primo cliente. Cmq ti volevo dire che "logicamente" è inutile separare queste due tabelle perchè fai soltanto casino e non serve a nulla...a meno che tu non voglia associare più recapiti alla stessa persona. (spero sia un esempio) Era meglio lasciare tutto insieme. Ritornando al fatto del file, il mio era un esempio! basta che invece di scrivere create table ecc ecc, tu scriva soltanto: INSERT into Dati (nome, cognome) VALUES ('pippo', 'pippa'); INSERT into Dati (nome, cognome) VALUES ('pluto', 'pluta'); tutte le volte che vuoi e poi basta che richiami come ti ho scritto sopra il caricamento del file. IL FILE METTILO NELLA STESSA CARTELLA del file mysql.exe altrimenti ti potrebbe dare errori (come è successo)!
__________________
MY PC --> Seasonic M12-500Watt + Asus P5B Deluxe WiFi/AP + Intel Q9550 + 4 GB G.Skill 1066Mhz + 1 Hd W.D. 74 GB Raptor 10kRpm + Seagate 750GB + Asus Nvidia 9800GTX! |
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Mar 2009
Messaggi: 70
|
si io li separo cosi x convenzione ma puoi separarli come vuoi...cmq non ti trova il file perche essendoci uno spazio nel nome della cartella (nuova cartella ) quest'ultima va messa tra " " cosi:
"nuova cartella" oppure separi le 2 parole con un underscore _...e poi devi scriverlo con la sintassi che ti ho detto prima xk se no nn ti riconosce i ; e il \n.....cmq io nn userei un attributo sia come k primaria che come k esterna...cmq il valore della k esterna si deve essere uguale alla primaria corrispettiva... Ultima modifica di _mike_ : 14-03-2009 alle 17:08. |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Quote:
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Quote:
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
|
|
|
|
|
#11 | |
|
Member
Iscritto dal: May 2006
Città: Bari
Messaggi: 274
|
Quote:
SCRIVI TUTTO NEL FILE (TUTTE LE INSERT O QUELLO CHE CAVOLO VUOI FARE) ENTRI NEL MYSQL E FAI UNA DELLE DUE (IL TXT METTILO NELLA CARTELLA DOVE STA mysql.exe): source nomefile ./nomefile COSì TI CARICA TUTTO!!!!!! dopo questa ci rinuncio
__________________
MY PC --> Seasonic M12-500Watt + Asus P5B Deluxe WiFi/AP + Intel Q9550 + 4 GB G.Skill 1066Mhz + 1 Hd W.D. 74 GB Raptor 10kRpm + Seagate 750GB + Asus Nvidia 9800GTX! |
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Mar 2009
Messaggi: 70
|
ah scusa ho sbagliato io l'ultima parte...è cosi la sintassi giusta....cmq se ti spunta il > vuol dire che si aspetta una parte del comando.....usa questa sintassi:
LOAD DATA LOCAL INFILE 'NOME_FILE.txt' INTO TABLE NOME_TAB FIELDS TERMINATED BY ';' ENCLOSED BY '\'';'\"; ti darà dei warnings e il > ma tu premi CTRL+C appena spunta il > e poi li inserisce cmq..... ciao |
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Quote:
Lo apro con la SELECT * FROM nome_tab vado a vedere se mi ha inserito i valori, ma niente, mi dice ke il campo è vuoto
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Mar 2009
Messaggi: 70
|
strano...a me lo da perfettamente.....prova a vedere bene il percorso del file o a controllare l'ultima parte del comando.....al massimo è sbagliato lì qualcosa....
mi dispiace....ciao |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:21.




















