sql >> Databasteknik >  >> RDS >> Mysql

MySql uppdaterar två tabeller samtidigt

Det bör vara möjligt med en multi-table uppdatering, som beskrivs i dokumentationen.

http://dev.mysql.com/doc/refman/5.5 /sv/update.html

UPDATE Table_One a INNER JOIN Table_Two b ON (a.userid = b.userid)
SET
  a.win = a.win+1, a.streak = a.streak+1, a.score = a.score+200,
  b.win = b.win+1, b.streak = b.streak+1, b.score = b.score+200 
WHERE a.userid = 1 AND a.lid = 1 AND b.userid = 1

Obs:Multi-table stöder inte LIMIT, så detta kan orsaka mer sorg beroende på detaljerna.

Lagrade procedurer eller transaktioner kan vara en trevligare lösning.



  1. 3 sätt att hitta positionen för en delsträng i en sträng i MySQL

  2. SQLite infogar inte data i den andra tabellen

  3. Bästa metoder för SQL varchar-kolumnlängd

  4. PostgreSQL-processnamn på Solaris