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サーバーのバージョンに対応するマニュアルをチェックして、正しい構文を使用して ''の近くの ''で使用してください。
いずれかが助けてくれます。
ありがとうDrew 私はあなたから与えられたいくつかのコードを変更していますが、正しく動作しています。 助けをもう一度お返事します 私は使用しています CREATE PROCEDURE 'test1'(' 'tab_name'' VARCHAR(40)の中で)NOT DETERMINISTIC NO SQL SQLセキュリティディフェンターBEGIN SET @ t1 = CONCAT(" SELECT * FROM '"、tab_name、 ''); @ t1からstmt3を準備する; EXECUTE stmt3; DEALLOCATE PREPARE stmt3; END –
クール。それを聞いてうれしいKunwar。 – Drew
ええ、上記の意味を知っています。コメントに間違った表記が表示されます。それを表示するには、エスケープシーケンスのようにする必要があります。しかし、ええ、バックティック。 – Drew