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

Vòng lặp con trỏ MYSQL, chạy thêm một vòng, tại sao?

Trình xử lý, đặt not_found_creadit = 1 , được kích hoạt khi FETCH không trả về hàng nào, nhưng bạn đang kiểm tra giá trị của nó trước thực thi FETCH , vì vậy phần thân chính của vòng lặp của bạn sẽ thực thi thêm một lần nữa khi FETCH không thành công, sau đó vòng lặp thoát ra khi bắt đầu tiếp theo sự lặp lại.

Sắp xếp lại mã của bạn để kiểm tra giá trị của biến ngay lập tức sau 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;


Ngoài ra, hãy xem xét sửa lỗi chính tả biến của bạn thành 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. Lỗi PHP -> Cảnh báo:mysqli_stmt ::execute ():Không thể tìm nạp mysqli_stmt | Cảnh báo:mysqli_stmt ::close ()

  2. Chọn bản ghi mới nhất từ ​​bảng bên phải khi sử dụng tham gia trong mysql

  3. Đặt đúng innodb_log_file_size trong mysql

  4. Câu lệnh SQL để ghi bảng?

  5. Lỗi ETIMEDOUT khi truy vấn cơ sở dữ liệu mysql