Query INSERT se non è presente nel database

di il
9 risposte

Query INSERT se non è presente nel database

Salve,
spiego il mio problema, volevo sapere se era possibile con 1 query effettuare questa situazione.

Ho un database nome=TEST
Campi=id (unique), Name, Value

Voglio che prima di inserire un nuovo campo (es: name=robert and value=50) deve controllare se il campo con name=robert esiste già, nel caso in cui esiste deve aggiornare il campo value=80....

come posso fare?
Grazie

9 Risposte

  • Re: Query INSERT se non è presente nel database

    Potresti tentare direttamente un UPDATE.
    Poi se la funzione ROW_COUNT() restituisce 0 effettui la INSERT.
  • Re: Query INSERT se non è presente nel database

    Ma voglio fare tutto con una sola query, mi puoi dire come fare?
  • Re: Query INSERT se non è presente nel database

    Caso mai lo fai con una stored procedure. Scegli tu se controllare il campo con un' Update o una select che restituiscono 0 righe.
  • Re: Query INSERT se non è presente nel database

    Non sono molto pratico, mi puoi mandare la sintassi? Grazie
  • Re: Query INSERT se non è presente nel database

    
    CREATE PROCEDURE nome_funzione ([IN|OUT|INOUT parametro[,...]])
    BEGIN
       corpo;
    END;
    
    Il web è pieno di esempi sulle stored procedure...
  • Re: Query INSERT se non è presente nel database

    Le stored procedures non è che siano proprio l'ideale con mysql, è più "stile microsoft" (MS SQL Server).
    Puoi usare INSERT ON DUPLICATE KEY UPDATE
  • Re: Query INSERT se non è presente nel database

    +m2+ ha scritto:


    Le stored procedures non è che siano proprio l'ideale con mysql, è più "stile microsoft" (MS SQL Server).
    Puoi usare INSERT ON DUPLICATE KEY UPDATE
    ho usato questo e mi funziona, ma l'unico problema è quando incontra due campi che hanno lo stesso valore mi da errore...
    esempio: name=3 e value=3 mi dice errore valore '3' duplicato.....
  • Re: Query INSERT se non è presente nel database

    MaxMag64 ha scritto:


    
    CREATE PROCEDURE nome_funzione ([IN|OUT|INOUT parametro[,...]])
    BEGIN
       corpo;
    END;
    
    Il web è pieno di esempi sulle stored procedure...
    no, per MYSQL non è il massimo
  • Re: Query INSERT se non è presente nel database

    visualnotte ha scritto:


    +m2+ ha scritto:


    Le stored procedures non è che siano proprio l'ideale con mysql, è più "stile microsoft" (MS SQL Server).
    Puoi usare INSERT ON DUPLICATE KEY UPDATE
    ho usato questo e mi funziona, ma l'unico problema è quando incontra due campi che hanno lo stesso valore mi da errore...
    esempio: name=3 e value=3 mi dice errore valore '3' duplicato.....
    come posso risolvere?
Devi accedere o registrarti per scrivere nel forum
9 risposte