sql >> データベース >  >> RDS >> Mysql

ストアドプロシージャを使用して動的な名前でテーブルを作成する

    テーブル名をに置き換えることはできませんか? 準備されたステートメントで 次に、executeにテーブル名を挿入させます。

    動的なテーブル名は通常、悪い考えです。 :1つの大きなテーブルを作成し、「仮想テーブル名」用に追加の(インデックス付きの)列を追加することをお勧めします。

    動的テーブルが本当に必要な場合は、テーブル名をPREPAREに連結する必要があります。

    動的テーブル名の長所と短所

    すべてのユーザーを1つのテーブルに入れるのではなく、 users IDを使用 、名前電子メール ... 、それらを動的テーブル users_countryに配置します 、列 ID 名前電子メール ...

    • すべてのテーブルを簡単にクエリすることはできません。男性のユーザーの数を知りたい場合は、各テーブルにクエリを実行し、結果をUNIONする必要があります。速くなることはありません。

    • とにかくPARTITIONSを使用してテーブルを物理的に分割できますが、論理ビューは同じです。個別のテーブルを使用していると思われる利点は、通常、別の方法を使用して達成できます。




    1. FOREIGN KEY制約によって参照されているため、オブジェクトを削除できませんでした-SQL Server/TSQLチュートリアルパート74

    2. #1222-使用されるSELECTステートメントの列数が異なります

    3. PostgreSQLVACUUMおよびANALYZEのベストプラクティスのヒント

    4. MariaDBでのSYSDATE()のしくみ