Mysql
 sql >> Database >  >> RDS >> Mysql

Ottenere le chiavi primarie interessate dopo la selezione, l'aggiornamento o l'inserimento solo utilizzando SQL?

SELECT LAST_INSERT_ID();

E seriamente, inserendo "chiave primaria da insert mysql" in Google ottieni una risposta Stack Overflow come primo risultato.

EDIT:più discussioni basate sui commenti.

Se vuoi vedere quali righe sono interessate da un aggiornamento, esegui semplicemente un SELECT con la stessa clausola WHERE e gli stessi criteri JOIN dell'istruzione UPDATE, ad esempio:

UPDATE foo SET a = 5 WHERE b > 10;

SELECT id FROM foo WHERE b > 10;

Se stai inserendo in una tabella che non ha una chiave primaria di incremento automatico, non devi fare nulla di speciale. Sai già qual è la nuova chiave primaria, perché l'hai impostata tu stesso nell'istruzione INSERT. Se desideri un codice in grado di gestire le istruzioni INSERT provenienti dall'esterno del codice che terrà traccia delle modifiche PK, dovrai analizzare l'istruzione INSERT o fare in modo che il codice chiamante fornisca informazioni sulla chiave primaria.