COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

di il
29 risposte

29 Risposte - Pagina 2

  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    Si un INSERT in un altro db per avere uno storico quando faccio modifiche di quel record tracciando così le modifiche. In questo storico ID 1 lo può mettere anche come nuovo record se lo modifico. Sono al cellulare quindi scusate per eventuali errori
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    @msantam
    stai facendo confusione/casino/un disastro.

    1) e' NECESSARIO conoscere un po' di concetti di Teoria Relazionale dei dati: nulla di complicato, ma i concetti FONDAMENTALI SI DEVONO conoscere
    2) e' NECESSARIO conoscere un po' di SQL: di nuovo, nulla di complcato ma che cosa e' e come funzionano SELECT/INSERT/UPDATE/DELETE/WHERE/GROUP BY/ORDER BY e' condizione FONDAMENTALE

    E' questo e' SOLO il PRIMO passo.

    Il SECONDO passo e' che e' NECESSARIO conoscere un po di ""design patterns"" (che non sono limitati al codice!!) su COME si affrontano certi problemi STANDARD usando delle soluzioni abbastanza consolidate.

    Questo per dire che "inserire un determinato record id in un database remoto tramite SQL", a questo punto

    NON VUOL DIRE ASSOLUTAMENTE NULLA.

    Se ti serve uno STORICO delle modifiche, E' OVVIO che nella tabella in cui tieni lo storico, NON TI SERVE il campo chiave ID, COME NELLA TABELLA ORIGINALE, per l'OVVIO motivo che lo stesso record potrebbe essere modificato piu' volte e QUINDI, nella tabella dello storico, sarebbe presente PIU' DI UNA VOLTA.

    La tabella storica dovrebbe contenere qualcosa del tipo:

    - DATA in cui e' avvenuta l'operazione
    - TIPO di operazione (INSERT, UPDATE, DELETE)
    - ID del record che e' stato modificato: QUESTO NON E" un campo chiave ANCHE se si chiama ID!!!!!!
    - contenuto del record DOPO l'operazione. Potresti ANCHE mantenere il valore dei campi PRIMA dell'operazione e DOPO L'operazione

    La tabella NON NECESSITA di un INDICE UNIVOCO/CHIAVE PRIMARIA, ma al piu' di un indice MULTIVALORE su DATA, perche' se storico deve essere, a te servono le informazioni relative ad UNA CERTA DATA E ad un certo record.

    In altri termini: il database si proggetta in base ALLE NECESSITA'. NON ESISTE un'unica soluzione. E NON SI PROGETTA in base agli statement SQL che devi usare!!!

    Nota: se scrivi al cel, non c'e' problema se certe parole sono sbagliate. Questo NON ESCLUDE che devi cercare di esprimerti in modo chiaro, fornendo TUTTE le informazioni che potrebbero essere rilevanti.
    Essendo NON ESPERTO, la soluzione che hai immaginato potrebbe essere SBAGLIATA, quindi, se fornisci abbastanza informazioni, magari ti si puo' indirizzare/aiutare in modo piu' ""circostanziato""
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    Infatti Id della form storico non é un capo chiave, ma lo storico ha un suo Idstorico.
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    Quello che non si capisce è

    --- sullo Storico tu vuoi fare solo INSERT o anche UPDATE?
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    Allora sullo storico, se è possibile fare un INSERT, del record esempio ID 1, se modifico il record ID 1 vorrei che lo trasferisse nel db2 come nuovo record cosi da avere la prima modifica ma anche la seconda. Se non è possibile mi andrebbe bene anche un UPDATE
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    migliorabile ha scritto:




    Se ti serve uno STORICO delle modifiche, E' OVVIO che nella tabella in cui tieni lo storico, NON TI SERVE il campo chiave ID, COME NELLA TABELLA ORIGINALE, per l'OVVIO motivo che lo stesso record potrebbe essere modificato piu' volte e QUINDI, nella tabella dello storico, sarebbe presente PIU' DI UNA VOLTA.

    La tabella storica dovrebbe contenere qualcosa del tipo:

    - DATA in cui e' avvenuta l'operazione
    - TIPO di operazione (INSERT, UPDATE, DELETE)
    - ID del record che e' stato modificato: QUESTO NON E" un campo chiave ANCHE se si chiama ID!!!!!!
    - contenuto del record DOPO l'operazione. Potresti ANCHE mantenere il valore dei campi PRIMA dell'operazione e DOPO L'operazione

    La tabella NON NECESSITA di un INDICE UNIVOCO/CHIAVE PRIMARIA, ma al piu' di un indice MULTIVALORE su DATA, perche' se storico deve essere, a te servono le informazioni relative ad UNA CERTA DATA E ad un certo record.
    La data di modifica la mette in automatico, usando Now e questo l'ho fatto, ID chiave primaria viene trasferita come testo breve. Ora io vorrei tracciare tutte le modifiche del Record del db1 nel db2. Anche se sono più modifiche su quel record del db1. Mi indirizzate come fare. Grazie
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    Quello che chiedi lo fa la tua INSERT

    Non capisco ancora cosa non va. Fai un esempio pratico
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    Esempio ok
    form contatti :
    ID | NOME |COGNOME |RICHIESTA| ECT.
    1 mario | Rossi | info | nnn
    eseguo SQL invia tutto a secondo db STORICO Form storicoTox:

    ID | NOME |COGNOME |RICHIESTA| ECT.
    1 mario | Rossi | info | nnn

    ora faccio una modifica al db1 cambio la voce nella casella RICHIESTA
    form contatti:
    ID | NOME |COGNOME |RICHIESTA | ECT.
    1 mario | Rossi | nuovo contatto | nnn

    eseguo SQL non cambia niente, non fa neanche un nuovo record con la modifica avuta in form contatti
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    Dove sta la INSERT, e quale codice impieghi ?
    Hai valutato anche le cancellazioni ?
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    Il mio scopo non é la cancellazione
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    Ti sei assicurato che la variabile ID usata nella Where contenga il calore corretto (nel tuo esempio contenga 1)?

    Controllarlo in debug
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    oregon ha scritto:


    Ti sei assicurato che la variabile ID usata nella Where contenga il calore corretto (nel tuo esempio contenga 1)?

    Controllarlo in debug
    ma la variabile Where ID che contenga 1, la devo mettere nel db2 "storico "?, mi conviene anche trasformare la tabella del secondo db in query?
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    Risolto, grazie a tutti. Sbagliavo nel tenere nel secondo db ugualmente una chiave primaria che non permetteva di duplicare i record ??????
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    Beh ... migliorabile ti aveva scritto molti messaggi fa
    QUESTO NON E" un campo chiave ANCHE se si chiama ID!!!!!!
    se solo avessi controllato allora ci saremmo evitati tutta una serie di altri messaggi ...
  • Re: COME INSERIRE DATI DI UN DETERMINATO "RECORD ID" IN UN DATABASE REMOTO TRAMITE SQL

    oregon ha scritto:


    Beh ... migliorabile ti aveva scritto molti messaggi fa
    QUESTO NON E" un campo chiave ANCHE se si chiama ID!!!!!!
    se solo avessi controllato allora ci saremmo evitati tutta una serie di altri messaggi ...
    Si Grazie, ma avevo capito di di evitare la chiave primaria del primo db, invece era del seconda db grazie
Devi accedere o registrarti per scrivere nel forum
29 risposte