Ho la seguente query:MySQL ON DUPLICATE KEY - ultimo ID inserto?
INSERT INTO table (a) VALUES (0)
ON DUPLICATE KEY UPDATE a=1
voglio l'ID sia del inserimento o l'aggiornamento. Di solito eseguo una seconda query per ottenere questo, poiché credo che insert_id() restituisca solo l'ID 'inserito' e non l'ID aggiornato.
C'è un modo per INSERIRE/AGGIORNARE e recuperare l'ID della riga senza eseguire due query?
Invece di supporre, perché non lo testate da soli? L'SQL nella modifica di cui sopra funziona, e attraverso il mio test è più veloce di un errore di inserimento, utilizzando INSERIMENTO IGNORA, o selezionando per vedere se c'è un duplicato prima. –
AVVISO: la soluzione proposta funziona, ma il valore auto_increment continua ad aumentare, anche se non è presente alcun inserto. Se la chiave duplicata si verifica spesso, è consigliabile eseguire 'alter table nome tableau AUTO_INCREMENT = 0;' dopo la query precedente, per evitare grandi lacune nei valori id. –