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

Thủ tục lưu trữ Mysql không lấy tên bảng làm tham số

Không thể tối ưu hóa SP với tên bảng động, vì vậy nhiều DB, bao gồm MySQL, không cho phép tên bảng được chỉ định động.

Một cách giải quyết vấn đề này là sử dụng SQL động.

CREATE DEFINER=`root`@`localhost` PROCEDURE `test_proc`(IN serviceName VARCHAR(10),IN newsInfoTable VARCHAR(100))
BEGIN                  
    SET @sql = CONCAT('SELECT COUNT(*) FROM ',newsInfoTable,' WHERE newsServiceName=?;'); 
    PREPARE s1 from @sql;
    SET @paramA = serviceName;
    EXECUTE s1 USING @paramA;
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. Đọc một blob từ MySQL với Java

  2. Loại bỏ các bản sao chỉ bằng cách sử dụng một truy vấn MySQL?

  3. Cách tạo chức năng gửi lại liên kết email trong Laravel

  4. Nhận id chèn cuối cùng từ hàng được chèn cuối cùng

  5. MySQL nhiều chèn hiệu suất