PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cập nhật hàng loạt bảng đã tham gia với ActiveRecord update_all và Rails 4

Kể từ Chat.update_all sẽ thêm UPDATE chats SET... cách duy nhất mà tôi có thể nghĩ ra để thực hiện cập nhật bằng bí danh (UPDATE chats AS c ) bằng cách sử dụng connection.update và một chuỗi 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'
});

Không tuyệt vời nếu bạn muốn tránh các đoạn SQL, nhưng sử dụng một phép nối như trong câu hỏi của bạn có thể là cách duy nhất nếu bạn muốn sử dụng 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. Câu hỏi về Ruby Guard - 'Vui lòng cài đặt bộ điều hợp sqlite3' - railstutorial.org

  2. Làm cách nào để định dạng trường bigint thành ngày tháng trong Postgresql?

  3. Cách giao dịch_timestamp () hoạt động trong PostgreSQL

  4. CHÈN trong một truy vấn thành 2 bảng postgresql

  5. Không tìm thấy lệnh testing.postgresql:initdb inside docker