Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Inserire una riga solo se non esisate già il valore

    Salve a tutti,
    ho la tabella strumenti composta dai campi: id (autoincrement pk), nome, data1, data2.
    Devo inserire uno strumento se non esiste già. Posso fare questa cosa con una sola query insert?

    data1 e data2 sono due date e devono essere riempite con la funzione now().

    Vorrei sapere se questa cosa si può fare in sql puro, ma nel caso ci fossero sintassi specifiche mi interesserebbe per mysql e sqlite.

    Grazie a chi mi risponderà
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  2. #2
    per meglio capire: come si fa a capire se uno strumento esiste già? e se esiste, cosa deve fare? Niente? Aggiornare?

  3. #3
    Hai ragione non sono stato preciso.
    Se la riga esiste semplicemente la query viene ignorata. In pratica ho un gruppo di strumenti che periodicamente può essere aggiornato ma la sorgente dei dati può contenere strumenti inseriti con la query precedente. In quel caso non devono essere considerati. Qualcosa del tipo INSERTI IF NOT EXISTS (altrimenti ignora).
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  4. #4
    non ci hai detto come riconoscere che uno strumento c'è oppure no

  5. #5
    I dati hanno il formato del database. In pratica ci sono i nomi degli strumenti che sono inseriti nel campo nome del database. Se ho un array (per esempio) con i vari nomi, non devo inserire uno strumento se nel database c'è una riga che ha il campo nome uguale.
    Ultima modifica di Nunkij; 28-03-2021 a 16:46
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    faccio alcune domande sperando possano aiutare a chiarire il contesto:

    il discrimine tra strumenti è il nome?
    se si, gli strumenti hanno il nome in formato testo? (quindi anche il campo del DB)

    perché parli di array? inserisci forse "un gruppo di strumenti" dal quale eliminare quelli eventualmente già inseriti?

  7. #7
    Il discrimine degli strumenti è il nome sì. Io ho una tabella e periodicamente aggiornerò gli strumenti presenti all'interno della tabella, sempre AGGIUNGENDONE di nuovi.
    Periodicamente l'utente può modificare in vari modi la sua lista di strumenti che verrà memorizzata in diverse strutture (pensiamo a un array per comodità ma dipenderà anche dal linguaggio che si usa per la query al database). A un certo punto l'utente farà SALVA e io devo fare la query, prenderò l'elenco di strumenti che lui ha selezionato (e che ho messo nell'array) e farò tanti INSERT quanti sono gli strumenti.

    A questo punto per evitare di inserire uno strumento già esistente devo fare in modo che venga creata una riga nel database soltanto se quello strumento non è già presente.
    Sì il nome è in un campo varachar.
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  8. #8
    visto che è ancora tutto in fase di definizione, direi di dare un'occhiata qui:
    - mysql: https://www.google.com/search?q=mysq...+if+not+exists
    - sqlite: https://www.google.com/search?q=sqli...+if+not+exists

  9. #9
    In che senso è in fase di definizione?
    In realtà avevo cercato su google ma non avevo trovato qualcosa di davvero utile, per questo chiedevo aiuto a chi magari aveva già affrontato il problema.
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  10. #10
    non hai specificato un problema specifico (es. questa query non funziona) ma una serie di domande molto generiche su alcuni scenari; per questo ti ho suggerito dei link

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 © 2024 vBulletin Solutions, Inc. All rights reserved.