単一の行を返すMySQLストアドプロシージャを呼び出そうとしています。cursor.callproc()
およびcursor.stored_results()
を使用して値を戻すことができますが、フィールドの名前を戻すことはできません。 「fileHash」
SPを直接呼び出すと、次のような結果が得られます。
mysql> call GetAllFileHashesForDirectory('/myroot/');
+------------------+
| fileHash |
+------------------+
| testa |
| testb |
+------------------+
2 rows in set (0.00 sec)
しかし、フィールド名を取得しようとすると、「fileHash」の代わりに次のようになります。
(u'@_GetAllFileHashesForDirectory_arg1',)
値を取得するために使用するpythonコードは次のとおりです。
self.__mySQLCursor.column_names
ストアドプロシージャで名前を指定する必要がありますか?私は本当に混乱しています。
ストアドプロシージャのロジックをSELECT 'fileHash'
次に UNION
ストアドプロシージャの他のクエリから他の値を返し、最初に返される行がfileHash
であることを確認するクエリの場合
SELECT 'fileHash'
UNION
SELECT <column> FROM <table>
出力
+------------------+
| fileHash |
+------------------+
| fileHash |
| testa |
| testb |
+------------------+