Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kueri licin 3.0 (scala) tidak mengembalikan data sampai dijalankan beberapa kali (saya pikir)

Semua panggilan DB akan kembali kepada Anda segera dengan Futures , bahkan jika mereka belum selesai dengan operasi mereka. Ini asinkron bukan sinkron.

Anda dapat mengubah kode Anda untuk mengakomodasi Futures dengan salah satu dari dua cara:

  1. anda dapat menggunakan Await.result dengan semua panggilan DB, untuk menunggu pada saat itu hingga selesai, misalnya:Await.result(db.run(insertEffect), Duration.Inf)

  2. Anda dapat menggunakan .map (atau .flatMap jika Anda menggunakan Futures lain dari dalam), dengan kode yang ingin Anda jalankan ketika operasi DB selesai. Misalnya:db.run(insertEffect).map(_ => ... do stuff... )

Lihat Stack Overflow lain utas mengenai pengecualian dengan beberapa ide tentang penyebabnya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mengambil karakter khusus dari database mysql, php

  2. Program Express sederhana untuk menanyakan hasil

  3. Entri data buffer ke formulir online jika terjadi pemutusan (Racket)

  4. Prosedur tersimpan MySQL memberikan kesalahan kolom yang tidak diketahui saat dijalankan

  5. Menggunakan SELECT INTO OUTFILE di MySQL