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

    mysq se esiste insert altrimenti update

    salve,
    ho una tabella con 2 campi chiave "codice1" e "codice2".
    Come da titolo dovrei fare un insert se il valore di "codice2" non esiste o un update se il valore di "codice2" esiste.
    Girando un po' sul web ho visto che si può fare così:
    codice:
    INSERT INTO tabella (name,desc) VALUES ('nome1','descrizione1')
    ON DUPLICATE KEY UPDATE name='nome1', desc='descrizione1'
    il fatto è che essendoci 2 campi chiave lui considera se sono duplicati entrabe e non solo uno dei 2. il risultato è che mi fa sempre insert.

    E' possibile far fare il controllo del duplicate key solo sul campo "codice2"?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Il campo codice2 deve essere UNIQUE.

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    Non creare una stored procedure, fai il campo unico

  5. #5
    l'unico modo che ho trovato al momento è, tramite php, azzerare i campi chiave, impostare codice2 campo chiave unico, far ciclare la query e poi riazzerare i campi chiave e rimettere codice1 come chiave

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.