Duplicazione tabella

di sdc98 il
9 risposte
Buongiorno,
ho creato il database della mia azienda nel quale ho creato una tabella SERVIZI relativa all'anno 2019, per il 2020 è possibile duplicare quella tabella cambiando l'anno da 2019 a 2020 e togliendo quei servizi che hanno come descrizione "Attivazione" in quanto si tratta di un servizio che si esaurisce nell'anno? se è possibile, si può fare usando una query?

altra domanda: dato che ogni anno serve duplicare i dati dei servizi la soluzione migliore è quella di creare una tabella anno per anno o continuare l'inserimento nella tabella di origine modificando solo il campo annoCompetenza?


Spero di essere stata chiara,
grazie!

9 Risposte

  • Un esempio
    INSERT INTO TABELLA1 ( CAMPO1, CAMPO2, CAMPO3, CAMPO4 )
    SELECT TABELLA1.CAMPO1, TABELLA1.CAMPO2,TABELLA1.CAMPO3,2020 AS Espr1
    FROM TABELLA1
    WHERE CAMPO1<>"Attivazione"
  • sdc98 ha scritto:


    altra domanda: dato che ogni anno serve duplicare i dati dei servizi la soluzione migliore è quella di creare una tabella anno per anno o continuare l'inserimento nella tabella di origine modificando solo il campo annoCompetenza?
    La seconda.
  • Biagio De Franco ha scritto:


    Un esempio
    INSERT INTO TABELLA1 ( CAMPO1, CAMPO2, CAMPO3, CAMPO4 )
    SELECT TABELLA1.CAMPO1, TABELLA1.CAMPO2,TABELLA1.CAMPO3,2020 AS Espr1
    FROM TABELLA1
    WHERE CAMPO1<>"Attivazione"

    Intanto grazie per avermi risposto,

    Facendo così vado a duplicare i record nella tabella esistente?! cioè prendo tutti i campi dalla mia tabella che soddisfano la condizione e li duplico nella tabella stessa?!
    quel 2020 AS Espr1 cosa fa?
  • sdc98 ha scritto:


    Biagio De Franco ha scritto:


    Un esempio
    INSERT INTO TABELLA1 ( CAMPO1, CAMPO2, CAMPO3, CAMPO4 )
    SELECT TABELLA1.CAMPO1, TABELLA1.CAMPO2,TABELLA1.CAMPO3,2020 AS Espr1
    FROM TABELLA1
    WHERE CAMPO1<>"Attivazione"
    Intanto grazie per avermi risposto,
    Facendo così vado a duplicare i record nella tabella esistente?! cioè prendo tutti i campi dalla mia tabella che soddisfano la condizione e li duplico nella tabella stessa?! SI
    quel 2020 AS Espr1 cosa fa?Non hai chiesto di cambiare solo l'anno? mette nel CAMPO4 (che io ho ipotizzato sia l'anno) il valore 2020
  • La logica di DUPLICARE tabelle è quanto meno oggetto di grande riflessione, può avere un senso, ma nella gestione standard direi che non è da fare.
    La funzionalità si ottiene inserendo un Campo DATA che fa da discriminante.
  • Biagio De Franco ha scritto:


    sdc98 ha scritto:


    Biagio De Franco ha scritto:


    Un esempio
    INSERT INTO TABELLA1 ( CAMPO1, CAMPO2, CAMPO3, CAMPO4 )
    SELECT TABELLA1.CAMPO1, TABELLA1.CAMPO2,TABELLA1.CAMPO3,2020 AS Espr1
    FROM TABELLA1
    WHERE CAMPO1<>"Attivazione"
    Intanto grazie per avermi risposto,
    Facendo così vado a duplicare i record nella tabella esistente?! cioè prendo tutti i campi dalla mia tabella che soddisfano la condizione e li duplico nella tabella stessa?! SI
    quel 2020 AS Espr1 cosa fa?Non hai chiesto di cambiare solo l'anno? mette nel CAMPO4 (che io ho ipotizzato sia l'anno) il valore 2020
    Biagio, prova a fare attenzione all'uso del QUOTE...!
    Grazie
  • Brutta idea. Pessima, idea. Idea da scartare a priori.

    A meno che la tabella non abbia centinaia di milioni o miliardi di record, non ti conviene duplicare la tabella o rimuovere dei record, tanto non danno fastidio. E non si sa mai che non ti servano per qualcosa altro.

    La dulicazione delle tabelle si fa in casi MOOOOLTO specifici e per motivi MOOOOLTO seri e lo si fa in database di grossissime dimensioni.

    Invece, la tua tabella dovrebbe avere un campo data (e magari un campo anno) che utilizzerai per selezionare SOLO i record di interesse, nell'intervallo di tempo di interesse (SOLO nell'anno 2018, SOLO tra il 19 febbraio ed il 27 giugno 2019)
  • Biagio De Franco ha scritto:


    sdc98 ha scritto:


    quel 2020 AS Espr1 cosa fa?Non hai chiesto di cambiare solo l'anno? mette nel CAMPO4 (che io ho ipotizzato sia l'anno) il valore 2020
    AHHH ok grazie, si infatti devo modificare dal 2019 al 2020 il campo anno dei record duplicati.
  • Ok capito quindi la duplicazione solo in extremis

    Adesso faccio una prova per mettere in atto i suggerimenti che mi avete dato

    Grazie mille a tutti!!!!

    Buona giornata
Devi accedere o registrarti per scrivere nel forum
9 risposte