• User

    Come faccio per aggiornare i dati?

    Ciao!

    Sto cercando di fare una cosa di questo tipo:

    ho una tabella con 4 campi: field1, field2. field3, field4

    Periodicamente aggiungo tramite sql nuovi dati, se il nuovo valore di field1 è diverso da tutti i precedenti va inserito normalmente.

    Se esiste già quel valore nel database, i dati di tutta la riga vanno sovrascritti. L'ideale sarebbe anche creare dei campi aggiuntivi per mostrare la differenza tra i field2. field3, field4 nuovi e vecchi. Il calcolo delle differenze dovrebbe avvenire in automatico con l'inserimento dei nuovi dati.

    Una soluzione del genere è fattibile? oppure è troppo complessa?

    Spero si capisca il seno di quello che ho chiesto, non sono molto esperto di database.


  • User Attivo

    Ciao kongfu1. La soluzione è fattibile, puoi costruire una pagina php apposita che faccia quello


  • User

    @PietroR said:

    Ciao kongfu1. La soluzione è fattibile, puoi costruire una pagina php apposita che faccia quello

    Ciao PietoR,

    sospettavo fosse fattibile, ora sto cercando di realizzarlo! Ho "scoperto" che basta aggiungere ignore ad INSERT e poi usare il comando UPDATE. Così prima inserisco i nuovi dati ignorando gli ID esistenti, e poi aggiorno i dati vecchi se sono cambiati.

    Tutto sommato funziona, ma devo ancora capire come creare automaticamente un campo che mostra le differenze tra i dati vecchi e nuovi.


  • User Attivo

    esatto, con la insert ignore e poi con l'update puoi fare questa cosa: inserire i nuovi record e aggiornare, se necessario, quelli vecchi.

    Per la differenza potresti salvare i vecchi dati in un nuovo campo prima di far partire l'aggiornamento/insert e poi fare la differenza fra il campo nuovo e quello vecchio