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

Sử dụng select vào biến cục bộ và câu lệnh chuẩn bị sẵn trong mysql

Từ http://bugs.mysql.com/bug.php?id=15263 :

Vì vậy, chúng tôi không thể làm:

PREPARE stmt FROM 'SELECT id INTO ? FROM t1';

Chúng tôi không thể sử dụng ? thay vì mã định danh (tên biến).

Và khi bạn sử dụng tên tham số:

PREPARE stmt FROM 'SELECT id INTO rid FROM t1';

trong chuỗi đang được chuẩn bị, khi đó máy chủ chỉ đơn giản là không biết cái gì rid đề cập đến trong tuyên bố bạn đang cố gắng chuẩn bị. Bạn có thể thử chuẩn bị bên ngoài SP với kết quả tương tự:

mysql> prepare stmt from 'select id into p from t1';
ERROR 1327 (42000): Undeclared variable: p

Vì vậy, tôi vừa sử dụng biến người dùng, hãy xem bên dưới:

DROP PROCEDURE IF EXISTS `singledb`.`TOUR_TRANSFER`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `TOUR_TRANSFER`()
BEGIN
  BEGIN -- for rubric table
    -- DECLARE @tblRubric_rubric_id INT;

    SET @tblRubric_rubric_id := 0;
    SET @qry = 'SELECT count(*) into @tblRubric_rubric_id FROM zerodb2.tour_template';
    PREPARE statement FROM @qry;
    EXECUTE statement;
  END;
END$$


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo GeoJson trong php từ MySql để sử dụng với API MapBox javascript

  2. MySQL khôi phục trên giao dịch với kết nối bị mất / ngắt kết nối

  3. Chọn 10 hàng riêng biệt đầu tiên trong mysql

  4. Cơ sở dữ liệu:Cách hiệu quả nhất để truy vấn dữ liệu vị trí địa lý?

  5. mysql WHERE MATCH LẠI