Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Inserimento di più righe in Mysql
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • B
      bazarop User Attivo • ultima modifica di

      Ho verificato in internet e sembra che heidisql non vada particolarmente d'accordo con il comando DELIMITER.
      Per verificare che il comando venga eseguito correttamente prova a eseguire questo codice:

      DELIMITER foo
      SELECT 1;
      SELECT 2;
      DELIMITER ;

      Se heidisql genera errore, qualcosa non funziona nella tua versione (leggendo in giro, un anno fa heidisql generava un bug con il comando DELIMITER). Delimiter è un comando essenziale per generare procedure, funzioni e trigger in MySql.

      http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • D
        danny1975 User Attivo • ultima modifica di

        [...]

        Ciao, infatti genera errore, sono andato sul link che hai postato, mi consigli di fare il download di MySql, oppure hai qualcosa di meglio da propormi
        Ciao da danny

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • B
          bazarop User Attivo • ultima modifica di

          La versione di HeidiSql è aggiornata? Se non lo è, prova ad aggiornarla.

          Se anche con la versione aggiornata ti genera errore, non saprei come aiutarti, in quanto HeidiSql non lo conosco e nonostante vi siano diverse discussioni sui problemi di Delimiter di quest'ultimo, il sito risulta sfortunatamente off-line.

          Ho sempre usato MySql e non ho esperienze con HeidiSql, mi spiace.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • D
            danny1975 User Attivo • ultima modifica di

            [...]

            Va bene, grazie, mo vedo come posso aggiornarlo, spero che l'amico che ha postato il primo tread non abbia lo stesso problema
            Ciao

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • B
              bazarop User Attivo • ultima modifica di

              Io ho testato il codice su MySql e non ha dato errore. Vedremo domani 🙂

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • P
                pettedemon User Attivo • ultima modifica di

                Ecco cosa ho inserito io
                [php]DELIMITER //
                CREATE function multiple (num INT)
                RETURNS int
                BEGIN DECLARE stop INT default 1;
                ciclo: WHILE stop<=num DO
                INSERT INTO t1(id) VALUES('0');
                set stop=stop+1;
                END WHILE ciclo;
                return 1;
                END;

                select multiple(50);[/php]e il messaggio di errore quando richiamo la funzione
                [php]Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
                DELIMITER;

                select multiple(50)' at line 9[/php]

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • C
                  cyrus User • ultima modifica di

                  Ciao, forse non hai inserito il nome giusto della tabella e dell'attributo.

                  @Bazarop said:

                  PS: ovviamente tabella e attributi possono essere scelti in modo arbitrario. Al posto di "t1(id)", inserire "table_web(dir)".

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • P
                    pettedemon User Attivo • ultima modifica di

                    Funziona tutto!
                    Perfetto!!!
                    La funzione si è memorizzata all'interno del database e adesso basta solo richiamarla!
                    Grazieeeeeeeee

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • B
                      bazarop User Attivo • ultima modifica di

                      Ciao Pettedemon, figurati 🙂

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • P
                        pettedemon User Attivo • ultima modifica di

                        Domanda:
                        se io devo inserire altre variabili che si inseriscano nel mio ciclo, come funziona la procedura per inizializzarle ?
                        Grazie!

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • B
                          bazarop User Attivo • ultima modifica di

                          DECLARE var INT default 1;

                          Declare var int -> dichiara la variabile "var" e il tipo;
                          Default 1 -> indica il valore iniziale uguale ad uno.

                          L'equivalente in php di :
                          var $pippo;
                          $pippo=1;

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • P
                            pettedemon User Attivo • ultima modifica di

                            Questa è la mia funzione
                            [PHP]DELIMITER //
                            CREATE function inserimento_f_4 (num INT, numero INT, dal_data DATE)
                            RETURNS int
                            BEGIN
                            DECLARE stop INT default 1;
                            DECLARE numero INT;
                            DECLARE dal_data DATE;
                            ciclo: WHILE stop<=num DO
                            INSERT INTO dati_web(posizione,n,dal) VALUES(stop,numero,dal_data);
                            set stop=stop+1;
                            END WHILE ciclo;
                            return 1;
                            END; [/PHP]

                            Devo inserire un numero progressivo e mi va bene la varabile del ciclo e funziona, poi devo inserire in ogni riga, un numero uguale per tutti e una data....
                            [PHP]select inserimento_f_4 (15, 945, '2011-10-05')[/PHP]

                            ho provato così ma non funziona...
                            Cosa sbaglio ?
                            Grazie

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • P
                              pettedemon User Attivo • ultima modifica di

                              Mi rispondo da solo perchè ho risolto.
                              Non serve inizializzare la variabile numero da inserire e data, basta inserirle come parametri della funzione e funziona tutto
                              [PHP]DELIMITER //
                              CREATE function inserimento_f_10 (num INT, numero INT, data_dal DATE)
                              RETURNS int
                              BEGIN
                              DECLARE stop INT default 1;
                              ciclo: WHILE stop<=num DO
                              INSERT INTO tab_web(posizione,n,dal) VALUES(stop,numero,data_dal);
                              set stop=stop+1;
                              END WHILE ciclo;
                              return 1;
                              END; [/PHP]

                              e poi alla funzione gli passa i valori che mi servono
                              [PHP]select inserimento_f_10 (15, 945, '2011-05-02')[/PHP]

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • B
                                bazarop User Attivo • ultima modifica di

                                Esattamente, se la variabile è un INPUT della FUNZIONE, non serve il declare.
                                Tu parlavi di inizializzare variabile da inserire nel ciclo e avevo frainteso.

                                Ciao
                                Andrea

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                Caricamento altri post
                                Rispondi
                                • Topic risposta
                                Effettua l'accesso per rispondere
                                • Da Vecchi a Nuovi
                                • Da Nuovi a Vecchi
                                • Più Voti