MySQL データベースの 1 つに「db_name」というストアド プロシージャを作成しました。そのストアド プロシージャで、MySQL の INFORMATION_SCHEMA データベースにアクセスする次の SQL クエリを実行しています (特定のテーブルのサイズを MB 単位で取得するため)。
SELECT ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024),2)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'table_name'
AND TABLE_SCHEMA = 'db_name';
上記のクエリでは結果が得られません。あるデータベースで作成されたストアド プロシージャが、別のデータベースまたはスキーマのテーブルにアクセスしようとしている可能性があります。
上記のクエリをストアド プロシージャまたは別の方法で正常に実行する方法を知っている人はいますか?