Domanda

Il inserto Sto Facendo l'mysql_errno vincolo univoco () 1062.

Questo funziona bene, ma vorrei trovare la riga esistente a ripristinare o modificarlo.

È che ci sono metodo per ottenere la riga id su inserto falliscono? Ho provato mysql_insert_id (), ma sono reso conto che sarebbe tornato solo la riga che sto inserendo (o Impossibile inserire), pertanto, ottengo 0.

C'è altra scelta se non di emettere un'altra mysql_query e semplicemente eseguire una selezione sul valore duplicato?

Voglio solo per assicurarsi che non v'è una migliore, più rapido, modo più economico per farlo.

È stato utile?

Soluzione

Se si sta tentando di inserire una riga se nuovo o aggiornare i valori esistente quindi REPLACE INTO è quello che serve. Considera anche INSERT ... ON DUPLICATE KEY UPDATE Sintassi se ci sono vincoli coinvolti come sostituire nelle CANCELLA e quindi inserire.

Altri suggerimenti

Dovreste controllare la tabella per le chiavi "unici" (SHOW CREATE TABLE sarà elencarli tutti), e poi interrogare la tabella per i valori associati nella query di inserimento che avevi tentato. Quindi, se siete inserimento di campi A, B, C, D e B, C hanno la chiave univoca su di loro, poi:

SELECT id, B, C FROM table WHERE B=$B and C=$C;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top