0
我正在嘗試爲表名稱創建一個動態存儲過程,我的意思是當我使用表名稱作爲參數調用存儲過程時,它應該顯示給定表名稱的所有詳細信息。在僅用表名稱的mysql中創建動態存儲過程
我使用這個代碼: -
CREATE PROCEDURE `test1`(IN tab_name VARCHAR(40))
BEGIN
SET @t1 =CONCAT("SELECT * FROM '",tab_name,"' ");
PREPARE stmt3 FROM @t1;
EXECUTE stmt3;
DEALLOCATE PREPARE stmt3;
END
它顯示錯誤,錯誤是: -
MySQL表示:文件
1064 - 你有一個錯誤的SQL語法;檢查對應於您的MySQL服務器版本的手冊,以便在第3行使用正確的語法
任何人都可以幫助我。
謝謝德魯 我改變了一些由你給出的代碼,它正常工作。 再次感謝您的幫助 我正在使用 CREATE PROCEDURE'test1'(IN'tab_name' VARCHAR(40))NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER BEGIN SET @ t1 = CONCAT(「SELECT * FROM'」,tab_name,「 '「);從@ t1準備stmt3;執行stmt3; DEALLOCATE PREPARE stmt3; END –
很酷。很高興聽到Kunwar的消息。 – Drew
是的,我知道你的意思。備註在評論中被誤傳。人們需要像轉義序列那樣來顯示它。但是,是的,反過來。 – Drew