PDA

View Full Version : da mdbtools a MySql


Herod2k
29-08-2005, 16:48
Ragazzi sto cercando di esportare i dati di una tabella di un database access e reimportarlo dentro un db MySQL, e cercando su google ho visto che esiste il programma mdbtools.

Da mdbtools (gmdb2 il front-end grafico) riesco a visualizzare i dati ed esportarli unicamente in file di testo....come lo importo sto file dentro MySql?? Normalemente uso phpMyAdmin per gestire il DB e da li non trovo nulla per importare il file...

Come posso fare??

DigitalKiller
29-08-2005, 16:53
Se usi phpMyAdmin, nella pagina dove viene proposta la struttura della tabella, c'è la voce "Inserisci un file di testo nella tabella" . Specifichi il nome del file ed il carattere di semparazione e clicchi su Invia:)

magix2003
29-08-2005, 16:54
Io con phpmyadmin ho trovato Inserisci.
Sopra la select per il database ci sono delle iconcine, clicca su quella con scritto SQL, una delle linguette e' inserisci.
Ciao

Herod2k
29-08-2005, 16:57
quello l'avevo visto ho anche provato ad usare...ma niente, la tabella in cui dovrebbe essere imporato rimane vuota, domanda:

la tabella per caso deve avere gli stessi nomi per le colonne e lo stesso numero di colonne?

Io ho creato una tabella in Mysql con lo stesso numero di colonne ma con nomi diversi...potrebbe essere quello??

magix2003
29-08-2005, 16:58
Mi sa di si, pero' non ne sono sicuro

DigitalKiller
29-08-2005, 17:02
Ma il file di testo contiene anche la struttura della tabella?

Herod2k
29-08-2005, 17:06
si c'è almeno credo, ecco l'inizio del file:


'id_articolo','nome','descrizione','costo','pubblico','disponibilita','Nome inglese','descrizione inglese','Categoria','Sottocategoria','Icona','Foto Grande','Colore 1','Colore 2','Colore 3','Colore 4','Colore 5','Colore 6','Colore 7','Colore 8','Colore 9','Colore 10','Colore 11','Colore 12','Colore 13','Colore 14','Colore 15','Colore 16','Colore 17','Colore 18','Colore 19','Colore 20','Peso','Dimensione X','Dimensione Y','Dimensione Z'
'SCR006','SET CICERONE','Set Scrittura antica con 1 canotto in legno 5 bottiglie inchiosto 30 ml nei colori ( nero/blu/verde/seppia/rosso) 6 Pennini calligrafici con punte da 1 a 5mm','3,62000000000000','30,0000000000000','0','Set cicerone','Set Older Writing with one wooden holder, five 30 ml inks bottle (black,blue,green,sepia,red) six calligraphy nibs

DigitalKiller
29-08-2005, 17:15
si c'è almeno credo, ecco l'inizio del file:


'id_articolo','nome','descrizione','costo','pubblico','disponibilita','Nome inglese','descrizione inglese','Categoria','Sottocategoria','Icona','Foto Grande','Colore 1','Colore 2','Colore 3','Colore 4','Colore 5','Colore 6','Colore 7','Colore 8','Colore 9','Colore 10','Colore 11','Colore 12','Colore 13','Colore 14','Colore 15','Colore 16','Colore 17','Colore 18','Colore 19','Colore 20','Peso','Dimensione X','Dimensione Y','Dimensione Z'
'SCR006','SET CICERONE','Set Scrittura antica con 1 canotto in legno 5 bottiglie inchiosto 30 ml nei colori ( nero/blu/verde/seppia/rosso) 6 Pennini calligrafici con punte da 1 a 5mm','3,62000000000000','30,0000000000000','0','Set cicerone','Set Older Writing with one wooden holder, five 30 ml inks bottle (black,blue,green,sepia,red) six calligraphy nibs


Si, ci sono i nomi delle colonne. Il tuo problema dipende proprio da questo.
Ora hai 2 possibilità; o modifichi le intestazioni delle colonne in mysql oppure inserisci oppure da shell ti logghi in mysql ed esegui questo comando:


LOAD DATA LOCAL INFILE 'percorso/nomefile' INTO TABLE
nometabella FIELDS TERMINATED BY 'separatore'
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;



1 è la riga con l'intestazione delle colonne. :)


Ps. non ho avuto modo di provarlo, ma dovrebbe andare :)

RaouL_BennetH
29-08-2005, 17:25
Alternativa semplice semplice:

1) In mysql creati un db con le stesse tabelle che hai in access,poi, esporta il file di access in un file di testo senza le intestazioni di colonna e delimitando i campi tra un meno(-).

2) da mysql vai di:



LOAD DATA LOCAL INFILE 'percorso/tuo_file_di_testo'
INTO TABLE tua_tabella
FIELDS TERMINATED BY '-'
(intestazioni tabella del db mysql)->esempio:(cognome, nome, articolo, etcetera);

Herod2k
29-08-2005, 17:40
visto che ci sono intanto provo con la prima spiegazione di digitalkiller:

la stinga dovrebbe essere questa se non vado errato:
LOAD DATA LOCAL INFILE '/home/herod/Desktop/appo' INTO TABLE 'appoggio' FIELDS TERMINATED BY 'separatore' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

che ci devo mettere al posto di "separatore"??

DigitalKiller
29-08-2005, 17:42
visto che ci sono intanto provo con la prima spiegazione di digitalkiller:

la stinga dovrebbe essere questa se non vado errato:
LOAD DATA LOCAL INFILE '/home/herod/Desktop/appo' INTO TABLE 'appoggio' FIELDS TERMINATED BY 'separatore' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

che ci devo mettere al posto di "separatore"??

Scusami :D Devi mettere la virgola al posto della parola separatore

Herod2k
29-08-2005, 17:46
era troppo bello se andava al primo colpo... :D :D :D

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that correspo nds to your MySQL server version for the right syntax to use near ''appoggio' FIELDS TER MINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMIN' at line 1

Herod2k
29-08-2005, 17:54
colpa mia non ci vogliono le virgolette sul nome della tabella :p :p

DigitalKiller
29-08-2005, 17:58
colpa mia non ci vogliono le virgolette sul nome della tabella :p :p
Funziona? :)

Herod2k
29-08-2005, 17:58
:cry: :cry: :cry:
non ha funzionato.....


mysql> LOAD DATA LOCAL INFILE '/home/herod/Desktop/appo' INTO TABLE appoggio FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;
Query OK, 1 row affected, 4 warnings (0.02 sec)
Records: 2 Deleted: 0 Skipped: 1 Warnings: 2

mysql> select * from appoggio
-> ;
+----+----+----+
| id | aa | bb |
+----+----+----+
| 0 | | |
+----+----+----+
1 row in set (0.00 sec)

mysql>


mi dice che ha importato ma la tabella è vuota ora provo con il metodo di Raul

DigitalKiller
29-08-2005, 18:07
visto che ci sono intanto provo con la prima spiegazione di digitalkiller:

la stinga dovrebbe essere questa se non vado errato:
LOAD DATA LOCAL INFILE '/home/herod/Desktop/appo' INTO TABLE 'appoggio' FIELDS TERMINATED BY 'separatore' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

che ci devo mettere al posto di "separatore"??

Il comando corretto dovrebbe essere questo:

LOAD DATA LOCAL INFILE '/home/herod/Desktop/appo' INTO TABLE 'appoggio' FIELDS TERMINATED BY 'separatore' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

Herod2k
29-08-2005, 19:00
Alla fine ci sono riuscito alla maniera RaouL_BennetH,

Grazie a tutti per l'aiuto.

:D :D :D :D

RaouL_BennetH
29-08-2005, 20:44
Alla fine ci sono riuscito alla maniera RaouL_BennetH,

Grazie a tutti per l'aiuto.

:D :D :D :D

:winner:

:D