Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [mysql] Insert di 50 righe con un solo comando

    Devo inserire 50 righe nella mia tabella "gallery".

    Mi è stato consigliato di fare così:

    INSERT INTO gallery(...campi...)VALUES(...valore associato ai campi...)

    Allora,
    la stringa diventerebbe così:

    INSERT INTO gallery(id,id_partita,titolo,descrizione)VALUES(?? ?????,12,Skorpions vs Angels,Le immagini della partita contro gli Angels Monza)


    Ecco. Ho messo un sacco di ?????? nel campo ID perchè non so come fare a dire che mi deve inserire 50 righe così partendo dall'id 250 ed arrivando al 300!

    Mi aiutate per cortesia?

    Grazie

  2. #2
    Se usi un autoincrement basta lasciare il campo vuoto oppure non citarlo per nulla sia nella lista dei campi che in quella dei valori.

    Se ti serve portare l'autoindex a 250 lo puoi fare con ALTER TABLE sempre che la condizione del contatore lo permetta. Oppure indichi il valore 250 alla prima delle query che fai e automaticamente ti riempira in sequenza le altre righe.

    Se invece e' un indice immesso manualmente fai un ciclo for a partire da 250 arrivando a 300 e passi la variabile del contatore come valore da immettere per l'id.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    [supersaibal]Originariamente inviato da piero.mac
    Se usi un autoincrement basta lasciare il campo vuoto oppure non citarlo per nulla sia nella lista dei campi che in quella dei valori.

    Se ti serve portare l'autoindex a 250 lo puoi fare con ALTER TABLE sempre che la condizione del contatore lo permetta. Oppure indichi il valore 250 alla prima delle query che fai e automaticamente ti riempira in sequenza le altre righe.

    Se invece e' un indice immesso manualmente fai un ciclo for a partire da 250 arrivando a 300 e passi la variabile del contatore come valore da immettere per l'id.

    [/supersaibal]
    Io ho un ID che si autoincrementa. Ecco, mi basterebbe portare le righe della tabella da 250 a 300. Mi potresti scrivere la sintassi esatta per poterlo fare? Grazie mille

  4. #4
    L'autoincrement si puo' movimentare usualmente verso l'alto... perche' il numero e' sicuramente libero. Verso il basso il limite minimo raggiungibile e' quello max + 1 gia' inserito. Cioe', pur essendoci buchi liberi non si puo' far raggiungere questi buchi da autoindex.

    E' possibile pero' farlo in modo esplicito, cioe' inserendo il valore libero invece di lasciar fare ad autoindex.

    Questo premesso, e dando per scontato che dal numero 250 in su i valori siano liberi, hai due modi per realizzarlo, anzi tre:
    1) ALTER TABLE tabella AUTO_INCREMENT = 250;
    2) un INSERT dove indichi il valore di partenza nella prima query, seguito da altre 49 senza l'indicazione dell'id.
    3) un ciclo for di insert con l'indice rappresentato dal contatore.

    Facciamo quest'ultimo esempio:
    codice:
    for($i = 250; $i < 300 ; $i++) {
    
    mysql_query("INSERT INTO gallery
               (id,id_partita,titolo,descrizione)VALUES
               ($i,12, 'Skorpions vs Angels', 
               'Le immagini della partita contro gli Angels Monza') ");
    }
    Ma nel tuo caso vedrei bene una chiave primaria composta da id_partita + id (autoincrement). In pratica per ogni partita nuova la conta dell'autoincrement ripartirebbe sempre dal valore 1. L'unicita' del dato si baserebbe sulla coppia e nel caso di rimozione dell'ultimo valore retrocederebbe anche l'autoindex.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    [supersaibal]Originariamente inviato da piero.mac
    2)un INSERT dove indichi il valore di partenza nella prima query, seguito da altre 49 senza l'indicazione dell'id.[/supersaibal]
    Ecco, mi interessa questo. Come dev'essere la query per arrivare dalla 250 (che esiste già) alla 300?

  6. #6
    [supersaibal]Originariamente inviato da Lacasadipaolo
    Ecco, mi interessa questo. Come dev'essere la query per arrivare dalla 250 (che esiste già) alla 300? [/supersaibal]
    La stessa del for, eliminando il campo id dall'elenco e dal VALUES.
    codice:
    for($i = 1 ; $i <= 50 ; $i++) {
    
    mysql_query("INSERT INTO gallery
                (id_partita, titolo, descrizione) VALUES
                (12, 'Skorpions vs Angels', 
                'Le immagini della partita contro gli Angels Monza') ");
    }

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.