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. Impostare campo come UNIQUE
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • I
      ivan88 Moderatore • ultima modifica di

      Impostare campo come UNIQUE

      Ciao a tutti,
      mi sto impratichendo sempre più con le varie funzioni mysql, ma ho un dubbio.

      Creando un nuovo campo ho notato che tra gli attributi potevo farlo UNIQUE, ovvero con tutti i valori diversi.
      Per assegnare questo attributo ad un campo già creato in precedenza come posso fare?

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • M
        magicale User Attivo • ultima modifica di

        Ciao,
        la query per assegnare UNIQUE ad un campo di una tabella è:

        
        ALTER TABLE tabella ADD UNIQUE ( nome_campo )
        
        

        Se la colonna ha dati duplicati, il campo non viene modificato.

        Alessandro

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • I
          ivan88 Moderatore • ultima modifica di

          Grazie!

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • I
            ivan88 Moderatore • ultima modifica di

            Ho provato e mi da errore!

            forse non è così che va scritto?:

            
            $connessione = mysql_connect($nome_host,$nome_utente,$pass_utente)or die("Connessione non riuscita: " . mysql_error());
            mysql_select_db($nome_database, $connessione) or die("Errore nella selezione del database");
            $query =  mysql_query("ALTER TABLE ragazzi ADD UNIQUE ( nomeurl );",$connessione);
            if ($query==FALSE) die("errore nella composizione della query");
            mysql_close($connessione); 
            
            

            Inoltre cercando su internet ho trovato questo: link

            Dice che questo serve ad aggiungere una nuova colonna e di fare attenzione non ce ne sia una con lo stesso nome, che è proprio il mio caso...

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • M
              magicale User Attivo • ultima modifica di

              Ho provato e mi da errore!
              Che errore?

              Dice che questo serve ad aggiungere una nuova colonna e di fare attenzione non ce ne sia una con lo stesso nome, che è proprio il mio caso...
              ADD UNIQUE non aggiunge alcuna colonna, ma un indice unico alla colonna indicata che deve essere presente nella tabella.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • I
                ivan88 Moderatore • ultima modifica di

                L' errore è:

                errore nella composizione della query
                
                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • M
                  magicale User Attivo • ultima modifica di

                  Quello è l'errore che visualizzi tu, non quello restituito da MySql.
                  Per vedere l'errore, modifica così:
                  [PHP]
                  if ($query==FALSE) die("errore nella composizione della query: ".mysql_error() );
                  [/PHP]

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • I
                    ivan88 Moderatore • ultima modifica di

                    ecco:

                    BLOB/TEXT column 'nomeurl' used in key specification without a key length
                    
                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • M
                      magicale User Attivo • ultima modifica di

                      Per i campi BLOB/TEXT mysql puoi utilizzare solo i primi N caratteri per l'indice.
                      Se non hai particolare necessità di avere un campo di tipo BLOB/TEXT per quel dato, convertilo in un VARCHAR.
                      Oppure assegna all'indice il valore N di caratteri da utilizzare

                      
                      ALTER TABLE ragazzi ADD UNIQUE ( nomeurl( N ) )
                      
                      

                      Questo però potrebbe creare problemi con l'unicità.

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • I
                        ivan88 Moderatore • ultima modifica di

                        Ho provato a convertirlo in VARCHART e quando clicco su salva mi da questo errore: "Questo non è un numero!"

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • M
                          magicale User Attivo • ultima modifica di

                          I varchar hanno una lunghezza da impostare. Max 255

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • I
                            ivan88 Moderatore • ultima modifica di

                            Ok, perfetto ha funzionato, ora il campo è UNIQUE.
                            Grazie!

                            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