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

Cara menggunakan output Tabel dari Prosedur MYSQL yang tersimpan

Ini tidak dapat dilakukan, secara langsung, karena output dari pemilihan tak terbatas dalam prosedur tersimpan adalah kumpulan hasil yang dikirim ke klien, tetapi secara teknis bukan tabel.

Solusinya adalah membiarkan proc meletakkan data dalam tabel sementara setelah membuat tabel untuk Anda. Tabel ini hanya akan tersedia untuk koneksi Anda saat prosedur selesai. Ini tidak akan menyebabkan konflik jika orang lain menjalankan proc pada saat yang sama dan tidak akan terlihat oleh koneksi lain.

Tambahkan ini ke prosedur:

DROP TEMPORARY TABLE IF EXISTS foo;
CREATE TEMPORARY TABLE foo SELECT ... your existing select query here ...;

Ketika prosedur Anda selesai, SELECT * FROM foo; akan memberi Anda apa yang akan Anda dapatkan dari proc. Anda dapat bergabung dengannya seperti tabel apa pun.

Setelah selesai, jatuhkan, atau akan hilang dengan sendirinya saat Anda memutuskan sambungan. Jika Anda menjalankan proc lagi, proc tersebut akan dihapus dan dibuat ulang.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. URL JDBC untuk konfigurasi MySQL menggunakan pengkodean karakter utf8

  2. Campuran ilegal dari susunan untuk operasi 'seperti' saat mencari dengan Ignited-Datatables

  3. Spring data JPA:mendapatkan Tidak ada alias ditemukan di Tuple hasil! kesalahan saat menjalankan kueri khusus

  4. MySQL - Tingkatkan Nilai Kolom atau Sisipkan Data jika tidak Ada

  5. Apa arti simbol ( '> ) pada baris perintah di MySQL?