sql >> Databasteknik >  >> RDS >> Mysql

Få primärnycklar påverkade efter att ha valt, uppdaterat eller infogat endast med SQL?

SELECT LAST_INSERT_ID();

Och allvarligt talat, om du lägger in "primärnyckel från infoga mysql" i Google får du ett Stack Overflow-svar som första resultat.

EDIT:mer diskussion baserad på kommentarer.

Om du vill se vilka rader som påverkas av en uppdatering gör du bara en SELECT med samma WHERE-sats och JOIN-kriterier som UPDATE-satsen, t.ex.:

UPDATE foo SET a = 5 WHERE b > 10;

SELECT id FROM foo WHERE b > 10;

Om du infogar i en tabell som inte har en primärnyckel för automatisk ökning, behöver du inte göra något speciellt. Du vet redan vad den nya primärnyckeln är, eftersom du ställer in den själv i INSERT-satsen. Om du vill ha kod som kan hantera INSERT-satser som kommer utanför koden som kommer att spåra PK-ändringar, måste du antingen analysera INSERT-satsen eller låta anropskoden ge information om primärnyckeln.




  1. Hur associerar man en användare till flera scheman i en databas?

  2. Vad betyder storleksbegränsning på MySQL-index?

  3. Lägg till dag till tidsstämpel

  4. Vad är Oracle Database?