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

Lingkaran kursor MYSQL, menjalankan satu putaran tambahan, mengapa?

Handler, yang menetapkan not_found_creadit = 1 , diaktifkan ketika FETCH tidak mengembalikan baris, tetapi Anda memeriksa nilainya sebelum menjalankan FETCH , jadi bagian utama dari loop Anda akan dieksekusi satu kali tambahan saat FETCH gagal, maka loop loop keluar di awal berikutnya iterasi.

Atur ulang kode Anda untuk memeriksa nilai variabel Anda segera setelah FETCH :

credit_loop : LOOP 
    FETCH cur_credit INTO vc_customer, dec_amount, vc_status, vc_user_type, vc_emp, vc_note;
    IF not_found_creadit THEN
        CLOSE cur_credit;
        LEAVE credit_loop;
    END IF;
    SELECT vc_customer, dec_amount, vc_status, vc_user_type, vc_emp, vc_note;
    ......
    ......
END LOOP;


Juga, pertimbangkan untuk mengoreksi ejaan variabel Anda menjadi not_found_credit



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memasukkan, menghapus, memilih, memperbarui nilai dalam datagridview di C # menggunakan MYSQL

  2. MySQL CURRENT_TIMESTAMP sebagai DEFAULT

  3. Bagaimana cara mendapatkan ukuran database MySQL?

  4. MYSQL auto_increment_increment

  5. Cara Mengimpor CSV ke MySQL Workbench