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

Tên bảng động trong hàm thủ tục được lưu trữ

Nếu bạn muốn sử dụng câu lệnh SQL bằng mã định danh, thì bạn cần sử dụng câu lệnh đã chuẩn bị sẵn; nhưng các câu lệnh chuẩn bị sẵn không thể được sử dụng trong các hàm. Vì vậy, bạn có thể tạo một thủ tục được lưu trữ với tham số OUT -

CREATE PROCEDURE getName
 (IN tableName VARCHAR(50), IN myId INT(11), OUT myName VARCHAR(50))
BEGIN

  SET @GetName =
    CONCAT('SELECT name INTO @var1 FROM ', tableName, ' WHERE id=', myId);
  PREPARE stmt FROM @GetName;
  EXECUTE stmt;

  SET myName = @var1;
END

Sử dụng ví dụ -

SET @tableName = 'tbl';
SET @myId = 1005;
SET @name = NULL;
CALL getName(@tableName, @myId, @name);
SELECT @name;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. node.js async / await sử dụng với MySQL

  2. Hàm FIELD của Doctrine 2 theo thứ tự

  3. So sánh công cụ tìm kiếm toàn văn - Lucene, Sphinx, Postgresql, MySQL?

  4. Chuyển đổi BufferedInputStream thành hình ảnh

  5. Dấu phân cách trong MySQL