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

    [MySQL] eliminare doppioni tabella

    Salve... ho una tabella così fatta

    ID | id_utente | id_opt
    1 | 1 | 17
    2 | 1 | 18
    3 | 1 | 18
    4 | 1 | 18
    5 | 1 | 19
    6 | 1 | 17

    Esiste un modo rapito in SQL per eliminare i doppioni per id_utente e id_opt?
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    ALTER IGNORE TABLE nome_tabella ADD UNIQUE (id_utente, id_opt);

    In questo modo crei un indice unico, che ti consiglio di lasciare perché impedisce di inserire i duplicati. Però se preferisci puoi toglierlo, i duplicati comunque saranno stati cancellati.

  3. #3
    perfetto ed in caso di nuovo inserimento di dati doppio? genera un errore o semplicemente non inserisce il dato perchè già presente?
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Quote Originariamente inviata da rinosan_76bis Visualizza il messaggio
    perfetto ed in caso di nuovo inserimento di dati doppio? genera un errore o semplicemente non inserisce il dato perchè già presente?
    Errore 1062: Duplicate entry <valore> for <nome_indice>
    (potrebbe essercene più di uno in una tabella)

    Puoi comunque sopprimere l'errore con INSERT IGNORE (il valore non viene inserito) o con REPLACE (il vecchio valore viene cancellato prima di inserire il nuovo... attenzione però se hai delle chiavi esterne o dei trigger).

  5. #5
    quindi con INSERT IGNORE se genera l'errore fa finta di nulla e procede nel codice?
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  6. #6
    ho fatto la prova, non genera errore grazie
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    In effetti... bastava provare

    In realtà genera un warning. Quindi l'esecuzione non si ferma, ma l'applicazione, se vuole può gestire l'errore.

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.