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. Verifica se esiste colonna MYSQL
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • F
      fpianar User • ultima modifica di

      Verifica se esiste colonna MYSQL

      Volevo sapere come verificare se esiste una colonna, prima di un'azione
      del tipo ALTER TABLE nome_tabella ADD etichetta VARCHAR(10) NOT NULL AFTER id
      per evitare possibili errori durante l'inserimento.

      Grazie a tutti...

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • marcocarrieri
        marcocarrieri ModSenior • ultima modifica di

        Prova questa.

        [php]
        delimiter '//'
        CREATE PROCEDURE aggiungicolonna() BEGIN
        IF NOT EXISTS(
        SELECT * FROM information_schema.COLUMNS
        WHERE COLUMN_NAME='etichetta' AND TABLE_NAME='nome_tabella' AND TABLE_SCHEMA='the_schema'
        )
        THEN
        ALTER TABLE the_schema.nome_tabella
        ADD COLUMN etichetta VARCHAR(10) NOT NULL;
        END IF;
        END;
        //
        delimiter ';'
        CALL aggiungicolonna();
        DROP PROCEDURE aggiungicolonna;
        [/php]

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • F
          fpianar User • ultima modifica di

          Grazie per lo script ci provo subito ....

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • marcocarrieri
            marcocarrieri ModSenior • ultima modifica di

            Dimmi se va, ho fatto qualche ricerca e ho provato a formulare quello li.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • F
              fpianar User • ultima modifica di

              Sono riuscito a risolvere alcuni problemi che mi davano errore all'esecuzione...ma in ogni caso non esegue il comando ....Perlomeno non da errore ....

              /*delimiter '//'
              CREATE PROCEDURE aggiungicolonna() BEGIN

              IF NOT EXISTS(
              SELECT * FROM information_schema.COLUMNS
              WHERE COLUMN_NAME='atcgmp' AND TABLE_NAME='prova')
              THEN
              ALTER TABLE 'prova'
              ADD COLUMN 'atcgmp' VARCHAR(10) NOT NULL;
              END IF;
              END;
              //
              delimiter ';'
              CALL aggiungicolonna();
              DROP PROCEDURE aggiungicolonna; */

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • marcocarrieri
                marcocarrieri ModSenior • ultima modifica di

                Allora niente da fare... 🙂
                Eh eh si potrebbe fare magari in due step? Cercare di reperire il nome delle colonne da una query php, poi se tale colonna non esiste allora si esegue l'aggiunta.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • F
                  fpianar User • ultima modifica di

                  Questa parte ritorna un valore corretto
                  SELECT * FROM information_schema.COLUMNS
                  WHERE COLUMN_NAME='atcgmp' AND TABLE_NAME='prova'

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • marcocarrieri
                    marcocarrieri ModSenior • ultima modifica di

                    Allora potresti farlo in due parti, anche se sono convinto che si possano usare delle condizioni per usarle nella stessa query.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • F
                      fpianar User • ultima modifica di

                      Come da consiglio vedrò di usare le funzioni in 2 step...ringrazio per la gentilissima collaborazione che in ogni caso ha risolto il problema....

                      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