Bắt lỗi: [Err] 1615 - Tuyên bố đã chuẩn bị cần được chuẩn bị lại với MySQL 5.6.30


7

Vấn đề / Vấn đề: Bắt lỗi: [Err] 1615 - Prepared statement needs to be re-prepared

Tôi có một Thủ tục được lưu trữ có chứa Tuyên bố đã chuẩn bị và chế độ xem

DROP PROCEDURE IF EXISTS `sampleProc`;

DELIMITER ;;
CREATE DEFINER = `root`@`localhost` PROCEDURE `sampleProc`()
BEGIN

SET @select = "SELECT * FROM `viewSample` ";

  PREPARE stmt FROM @select ;
  EXECUTE stmt ;
  DEALLOCATE PREPARE stmt ;

END  ;;
DELIMITER ;

Theo dõi cuộc gọi đôi khi có lỗi CALL sampleProc();

Có thể giải quyết xung quanh / giải pháp

Có vẻ như giải pháp tốt nhất là tăng giá trị của table_def định_cache, nhưng có vẻ như nó không hoạt động, vì nó đã được tăng từ 1400 (mặc định) lên 16384. table_open_cache cũng được tăng lên 32162

Variable_name               Value
table_definition_cache      16384
table_open_cache            32162
table_open_cache_instances  4

Câu trả lời:


6

Đây dường như là một vấn đề đang diễn ra

Lượt xem lộn xộn để xử lý với SQL động

Lỗi sớm nhất là không thể tạo VIEW trong các báo cáo được chuẩn bị từ 11 năm trước. Có một bản vá được đưa vào để giải quyết nó .

Một báo cáo lỗi khác, Prepared-Statement không thành công khi MySQL-Server bị tải , nói rằng lỗi 1615 không phải là lỗi khi các bảng bên dưới đang bận. (Có thật không ?)

Mặc dù có một số giá trị để tăng kích thước bộ đệm của bảng (Xem lỗi MySql khi làm việc với chế độ xem mysql ), nhưng nó không phải lúc nào cũng hoạt động (Xem Lỗi chung: 1615 Câu lệnh đã chuẩn bị cần phải được chuẩn bị lại (chọn chế độ xem mysql) )

THAY ĐỔI

Cách đây hơn một năm, một người nào đó đã đề cập đến vấn đề này trong Diễn đàn MySQL (MySql Chế độ xem trực tiếp, Tuyên bố chuẩn bị Tuyên bố và Tuyên bố chuẩn bị cần phải được chuẩn bị lại) .

Ai đó đã nảy ra ý tưởng đơn giản là không sử dụng khung nhìn trong câu lệnh đã chuẩn bị mà thay vào đó sử dụng SQL của khung nhìn trong một truy vấn con . Một ý tưởng khác là tạo SQL được sử dụng bởi khung nhìn và thực thi nó trong mã máy khách của bạn .

Đây có vẻ là cách giải quyết tốt hơn khi chỉ tăng kích thước bộ đệm của bảng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.