Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

migrazione tabelle correlate da access a mysql

105 views
Skip to first unread message

mario rossi

unread,
May 25, 2022, 8:31:37 AM5/25/22
to
ho una tabella "fatture" (id, numFat, data, cliente, pagamento)

in relazione uno a molti alla tabelle "fatturerighe"
(id, idfattura, descrizione, um, qta, prezzouni, prezzotot)

id (fatture) uno a molto con (idfattura) di fatturevoci

come fareste a importare tutto in mysql?

ho pensato:
credo delle copie identiche delle tabelle anche in mysql
con il campo id di entrambe le tabelle di tipo int
esporto due csv da access e li importo in mysql
successivamente metto i due campi ID a primarykey autoincrement

metodi migliori?




RobertoA

unread,
May 25, 2022, 9:04:43 AM5/25/22
to
Non credo nelle scorciatoie
Dovessi farlo io preparerei una procedura ad hoc per la lettura da una
parte (archivi Access) e la scrittura dall'altra (MySql o altro)
Dopo la connessione ad entrambi gli archivi si tratta sostanzialmente di
ciclare dal primo all'ultimo record del db sorgente
Per ogni record, si dovra' ciclare dal primo all'ultimo campo del db
sorgente, e copiarlo sul campo corrispondente del db destinazione
Avrei il pieno controllo soprattutto della scrittura su MySql perche' e'
probabile che qualche formato di dato non sia conforme a quanto letto su
Access e si pianti la conversione
Volendo si potrebbe usare lo stesso metodo pure per creare la tabella
destinazione sul db destinazione, evitando la fatica di dover creare la
struttura db destinazione

mario rossi

unread,
May 25, 2022, 9:13:39 AM5/25/22
to
mi sembra una buona idea, quindi creo le copie delle tabelle già con i campi ID autoincrement ed eventualmente aggiorno IDFattura di fatturevoci con l'id nuovo di mysql
il tutto da client access con tabelle collegate al backend access e a mysql

RobertoA

unread,
May 25, 2022, 9:48:13 AM5/25/22
to
Ocio che il campo autoincrement e' una particolarita' di Access, non
tutti i db server ce l'hanno o hanno qualcosa di simile
Visto che ci stai mettendo mano, ti consiglio di studiare un meccanismo
che sia sfruttabile poi paro paro su tutti gli altri db server
Un qualcosa basato su trigger e stored procedure che tutti usano
Poi, la coppia trigger+stored sara' diversa da db server a db server
ognuno usa le proprie peculiari istruzioni, ma il meccanismo col quale
lavori lato Access restera' sempre uguale

BFS

unread,
May 25, 2022, 10:23:47 AM5/25/22
to
il campo autoincrementale esiste da sempre in mysql non andrei a creare
complicazioni con trigger e sp per un banale IDFattura


CREATE TABLE `companies` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`idCliente` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
bla bla bla

http://www-db.deis.unibo.it/courses/TW/DOCS/w3schools/sql/sql_autoincrement.asp.html

BFS

caezan

unread,
May 27, 2022, 9:54:20 AM5/27/22
to
> ho una tabella "fatture" (id, numFat, data, cliente, pagamento)
> in relazione uno a molti alla tabelle "fatturerighe"
> (id, idfattura, descrizione, um, qta, prezzouni, prezzotot)
> id (fatture) uno a molto con (idfattura) di fatturevoci
> come fareste a importare tutto in mysql?

La prima volta usa il tool specifico della migrazione di MySQL , ti assiste nell'importazione sia della struttura del database sia dei dati.
Ad un certo punto della procedura di migrazione ti chiede se vuoi definire una chiave che non sia il numero fattura e numerofatt+numriga, rispondi affermativamente e impostala come automatica incrementale.
Attenzione al tipo del campo autoincrement di MySQL, deve essere del tipo numerico adeguato ad enumerare il numero di testate e righe fattura.
Essendo incrementale, se lo vuoi azzerare dopo un po' di tempo, devi lanciare anche da Access un comando di ALTER TABLE aggiungendo un nuovo campo chiave autoincrementale e quindi distruggere il precedente.
Infine via connettore ODBC ufficiale MySQL colleghi le tabelle ad Access e le gestisci come tu fossi in Access.
Ho usato questo tool decine di volte e funziona molto bene, è l'analogo del Microsoft SQL Server Migration Assistant for Access.
Forse ora è integrato in Workbench ma trovi anche le vecchie versioni che sono piu semplici (cerca Migration Toolkit se ricordo bene).

mario rossi

unread,
May 27, 2022, 6:35:39 PM5/27/22
to
proverò i vostri consigli grazie,.

mario rossi

unread,
May 30, 2022, 1:11:53 PM5/30/22
to
Il giorno venerdì 27 maggio 2022 alle 15:54:20 UTC+2 caezan ha scritto:
qual'è il tool specifico?

mario rossi

unread,
Jun 4, 2022, 7:19:14 PM6/4/22
to
il tool è mySQL migration toolkit se dovesse servire a qualcuno
l'ho provato e facendo dei passaggi opportuni sul db access prima di darlo in pasto al tool
l'importazione viene eseguita senza problemi

unica pecca che ho notato è che
i campi ID li importa come int quindi vanno impostati in phpmyadmin come autoincrement
le relazioni fra tabelle padre figlio in relazione tra di loro vanno ricreate in mysql ma è abbastanza semplice farlo.



0 new messages