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$$