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

Không sử dụng được các giao dịch trong Quill để CHÈN các đối tượng quan hệ một-nhiều

Vấn đề là, hiện tại, Quill async không hỗ trợ các hoạt động đồng thời bên trong các giao dịch.

Vì vậy, phải thực hiện tuần tự việc chèn động vật:

ctx.transaction { implicit ec =>
  for {
    personId <- ctx.run(insertPersonQuery)
    animals = personCreate.animals.map(Animal.apply(personId, _))
    _ <- animals.foldLeft(Future.successful(0l)) {
      case (fut, animal) =>
        fut.flatMap(_ => insertAnimal(animal))
    }
  } yield personId
}

ngoài ra, tốt hơn nữa là sử dụng tính năng chèn hàng loạt :)

Cảm ơn @fwbrasil và @mentegy đã hỗ trợ!



  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 lệnh MySQL PREPARE trong các thủ tục được lưu trữ

  2. PostgreSQL:một mẫu gán biến hợp lệ?

  3. Cách di chuyển từ Oracle sang MySQL / Percona Server

  4. flake8 phàn nàn về so sánh boolean ==trong mệnh đề bộ lọc

  5. Kích hoạt trình kích hoạt sau khi cập nhật các cột cụ thể trong MySQL