sql >> Databáze >  >> RDS >> PostgreSQL

Hromadná aktualizace spojené tabulky pomocí ActiveRecord update_all a Rails 4

Od Chat.update_all přidá UPDATE chats SET... jediný způsob, jak mě napadnout, přimět rails k aktualizaci pomocí aliasu (UPDATE chats AS c ) je pomocí connection.update a řetězec SQL:

Chat.connection.update(Q%{
  UPDATE chats AS c 
  SET email = m.source_name
  FROM messages AS m
  WHERE c.id = m.chat_id 
    AND m.created_at >= '2014-10-10'
});

Není to skvělé, pokud se chcete vyhnout fragmentům SQL, ale použití spojení jako ve vaší otázce může být jediným způsobem, pokud chcete použít AREL.




  1. MySQL najde nepoužívané tabulky

  2. Monitorování PostgreSQL v hybridním prostředí

  3. Který vyhledávač třetí strany (zdarma) bych měl použít?

  4. Proč výkon dotazů PostgresQL v průběhu času klesá, ale obnovuje se při opětovném sestavení indexu