Domanda

Quando sto cercando di eseguire "INSERT IGNORE ..." in MySQL per aggiungere una sola variabile ad un tavolo di diverse opzioni, dopo il primo inserimento, si rifiuta di lavorare. Si dice "righe inserite: 0" e non inserisce il nuovo valore nel database. Credo che questo è perché c'è già una voce con un valore di "nulla" e MySQL non consente il campo vuoto da duplicare. Questo sembra essere un comportamento strano (a condizione che i due inserti non sono esattamente la stessa cosa), quindi mi chiedo se c'è qualche modo per evitare questo.

Grazie per qualsiasi HEP!

È stato utile?

Soluzione

I due INSERT non devono essere esattamente lo stesso, solo che deve essere lo stesso per le colonne chiave primaria.

INSERT IGNORE ignorerà un inserto se esiste già una riga con la stessa chiave primaria. Se hai INSERT invece di INSERT IGNORE, si sarebbe trovato un errore (duplicare chiave primaria).

Se si desidera aggiornare invece la riga esistente, è possibile utilizzare REPLACE.

In entrambi i casi, ci può essere solo una riga per ogni chiave primaria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top