PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Групово актуализиране на обединена таблица с ActiveRecord update_all и Rails 4

От Chat.update_all ще добави UPDATE chats SET... единственият начин, за който мога да се сетя, да накарам релсите да направят актуализация с псевдоним (UPDATE chats AS c ) е чрез използване на connection.update и 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'
});

Не е чудесно, ако искате да избегнете SQL фрагменти, но използването на съединение, както във вашия въпрос, може да е единственият начин, ако искате да използвате AREL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вижте и изчистите Postgres кешове/буфери?

  2. org.postgresql.util.PSQLException:ГРЕШКА:колона user0_.id не съществува - Хибернация

  3. Инсталиране на pg gem; ГРЕШКА:Неуспешно изграждане на собствено разширение за gem

  4. Как да използвате `unaccent` с пълнотекстово търсене в django 1.10?

  5. JDBC драйверът на PostgreSQL не работи за Heroku DB Connection