2011-08-05 10 views
0

私はその表から選択しようとしていますが、取得しています一時テーブルMySQLエラー一時テーブルを使用して - 「テーブルを再度開くことができません:「temporary_name」

を作成するストアドプロシージャを呼び出すためのpythonを使用しています私は間違って

私のコードをつもりどこ

Caught an exception while rendering: (1137, "Can't reopen table: 'temporary_name'") 

は誰でも見ることができますエラーが

# create a cursor 
cur = connection.cursor() 
# execute the stored procedure 
cur.callproc('nodetree') 

# Get results from stored procedure 
sql = "SELECT * FROM temporary_name" 

cur.execute(sql) 
です

テーブルは(太字テキストを参照してください)私はちょうどMySQL documentationから例

+0

手順のコードを教えてください。 – CappY

答えて

0

のためにそれを入れるtemporary_nameと呼ばれていません。

あなたは同じクエリで複数回TEMPORARYテーブルを参照することはできません。たとえば、次のように動作しません:

mysql> SELECT * FROM temp_table, temp_table AS t2; 
ERROR 1137: Can't reopen table: 'temp_table' 

あなたは一時テーブルへの参照は、関数内の異なる文で発生しても別のエイリアスの下で保存された機能で複数回、参照している場合、このエラーはまたを発生します。

+0

ストアドプロシージャにエイリアスがありません – John

+0

@Johnはストアドプロシージャとコマンドラインクライアントから選択クエリを実行できますか?どこに例外がスローされますか? 'callproc()'または 'execute()'? – Vlad

関連する問題