爲什麼我得到這個錯誤?使用變量作爲表名的mysql錯誤
CREATE DEFINER=`root`@`localhost` PROCEDURE `selectrecords`(tablename varchar(50))
begin
set @table_name=tablename;
set @sql_text=concat('Select * from @table_name');
prepare statement from @sql_text;
execute statement;
deallocate prepare statement;
end
錯誤:
....to use near '@table_name' at line 1
我的代碼是正確的,但我不明白爲什麼....
我不認爲你可以使用變量對動態SQL中的表名。在Oracle中你肯定不能。我認爲你必須連接,看JW的答案 – Sebas
@ Sebas:如果我使用「刪除frrom ....在哪裏」,JW的答案仍然可以接受? –
是的,我想他幾乎回答了你所有的問題。 – Sebas