Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Incrementare campo db

  1. #1

    [MYSQL]Incrementare campo db

    Salve dopo un inserimento errato mi trovo un campo del db numero_ipad che dovrebbe essere progressivo invece dall' id 221 al 274 mi trovo lo stesso numero (127) , potrei cambiarlo lavorando lato programmazione ma volevo capire come si possa eseguire la stessa cosa tramite sql , guardando un pò su internet ho trovato le stored procedure , per effettuare un ciclo in cui incrmentare quel campo :

    codice:
    DELIMITER $$
    
    CREATE PROCEDURE update_data(v1 INT,num_id INT)
    BEGIN
    update hw set numero_ipad=v1 WHERE id = num_id;
    END;
    
    CREATE PROCEDURE carica_valori(v1 INT,num_id INT)
    BEGIN
        
      DECLARE v1 INT DEFAULT 127;
      DECLARE num_id INT DEFAULT 222;
    
      WHILE v1 < 180 DO
        
        SET v1 = v1 +1;
        SET num_id= num_id +1;
        call update_data(v1,num_id);
      END WHILE;
    
    END$$
    
    DELIMITER ;
    
    call carica_valori(127,222);
    Questo codice però non funziona , dove è che sbaglio ?
    Ultima modifica di pippuccio76; 04-12-2023 a 17:59

  2. #2
    di che db parliamo? va indicato, come da regolamento (già nel titolo...)

  3. #3
    Quote Originariamente inviata da optime Visualizza il messaggio
    di che db parliamo? va indicato, come da regolamento (già nel titolo...)
    Modificato , hai ragione...

  4. #4
    hai considerato la possibilità di copiare i record in un'altra tabella con il numero_ipad autoincrementante? farebbe tutto il db...

  5. #5
    sinceramente no ma vorrei farlo tramite codice , magari potrebbe servirmi in altre circostanze

  6. #6
    ok, nel tuo post dici che quella SP "non funziona"... che vuol dire? che ti si spegne la lavatrice quando la lanci? spiegati un po' meglio, dai

  7. #7
    non funziona intendo che la lancio e mi dice zero righe interessate quando nel db ho gli id fino a 274 e dal mio codice mi aspetto che venga eseguito l'upadte dala riga con id 223 (222+1) al'ultima ( ho messo 280 per rimanere dentro)

  8. #8
    Quote Originariamente inviata da pippuccio76 Visualizza il messaggio
    non funziona intendo che la lancio e mi dice zero righe interessate quando nel db ho gli id fino a 274 e dal mio codice mi aspetto che venga eseguito l'upadte dala riga con id 223 (222+1) al'ultima ( ho messo 280 per rimanere dentro)
    Up

  9. #9
    prova ad usare una funzione sola, incorporando l'update_data nella carica_valori

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    24
    Spero di aver capito, prova questo:

    UPDATE tabella SET campo=campo+1 WHERE id>=223

    dove
    tabella= il nome della tua tabella
    campo= nome del campo da aggiornare

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 © 2025 vBulletin Solutions, Inc. All rights reserved.