私は、必要に応じて新しいテーブルを動的に作成するプログラムを持つことを考えています。 MySQLにちょうど番号が付いたテーブルを持てますか? MySQLでテーブルを、オブジェクトに名前を付けるなどのためMySQLでテーブル名として数字を使用することは許可されていますか?
答えて
ルール:
http://dev.mysql.com/doc/refman/5.1/en/identifiers.html
識別子が数字で始まるが、 桁のみ から成っていないかもしれ引用されない限りがあります。
SELECT * FROM 12345;
が、以下は、有効な次のようになります:
だから、これは無効になります
SELECT * FROM `12345`;
またはANSIモードで実行されているが、次のように動作するかどう:
SET @@session.sql_mode=ANSI_QUOTES;
SELECT * FROM "12345";
とKarimとSteve Weetが指摘したように、はい、あなたはことができますが、このようにそれらを引用する必要があります:
SELECT * FROM `3516`
は、私はおそらくかかわらず、あなたのスクリプトを再考勧めてもらえますか?接頭辞を追加する:「t3516」という名前の表は、「3516」と同じくらい混乱することはありません。
また、あなたはただの数字ではなく文字を使用するように番号を変換することができます:
table 0 - t_a
table 1 - t_b
table 2 - t_c
table 25 - t_z
table 26 - t_aa
table 27 - t_ab
... etc
限り、あなたはテーブル名を引用するように注意するよう、karim79で与えられる答えは、イエスです。もちろん、接頭辞としてnumerを使用することもできます。 mytable1、mytable2、...;引用符を使わずに動作します。
つまり、なぜ非常に多くのテーブルを作成したいのかを考える必要があります。受け入れられる方法は、すべてが1つの表にまとめられていることです。だからtable1、table2 ...を持つのではなく、あなたは1つのテーブルを使用し、列に数値を格納します。
これは単なる自然な方法です。あなたのやり方は容易に多くの問題につながる可能性があります(DBスキーマの変更はバックアップに問題があり、多くのテーブルのために他のツールがDBで作業しにくく、すべてのテーブルにスキーマを変更する必要があります)。実行時にスキーマを動的に変更することは、通常はお勧めできません。
意味が分かりません。あなたが毎回それをエスケープしている限り、答えは間違いなくはいです。また、私はテーブル名が自動的に生成されるデータベースの整数である多くの場合に出くわしました。 – techdude
@techdude:私はデータベースに「番号付きテーブル」を見つけたことはありません。あなたはどこを見ましたか?なぜ彼らは使われたのですか?私は好奇心が強いです... – sleske
特定の場所は重要ではありません。キーはテーブル名に数字を使用できることです。 さらに質問者の質問に答えるには、作成した新しいテーブルに各行が対応している(そしてテーブルに関する他の情報を持つことができる)マスター増分テーブルを持っていると同時に、作成されるテーブルの整数この場合、整数のテーブル名(およびその項目のカラム名)はすべての主要なDBMSでサポートされるため、文字列にする必要はありません。 – techdude
私は、それがもっと紛らわしくて覚えにくいとは思っていません。テーブル名は、格納しているデータに関連している必要があります。それはより良い習慣です。
純粋な数字の場合は、テーブル名を引用符で囲むためにバックティック( `)を使用します。キーボードのescボタンの下にあります
- 1. ラベルタグ付きのIDを使用することは可能ですか許可されています
- 2. mysqlは2つのテーブルから引き出して比較することを許可していません
- 3. はなぜPHPの変数は、私はMySQLの文でテーブル名として変数名を使用しようとしていますが、私は、テーブル名として変数を使用するときに私のPHPスクリプトでMySQLのINSERT文
- 4. mysqlテキストフィールドに格納されているときに0から始まる数字を許可する
- 5. Ruby on Railsのテーブル名:許可されているものは?
- 6. モバイルサファリは、私のジオロケーションを使用することを許可したことを覚えていますか?
- 7. この文法はVB.Netで許可されていますか? (引数として手順)
- 8. 私はpythonで辞書キーとして可変オブジェクトを使用することができます。これは許されないのですか?
- 9. 許可されていないキー文字を許可する方法。 Codeigniterで?
- 10. MySQLではネストされたトランザクションが許可されていますか?
- 11. Firefox AddonはGoogle Maps APIを使用していますが、リモートスクリプトとEVALは許可されていません。
- 12. s:SpriteVisualElementと「コンポーネントの宣言はここでは許可されていません」
- 13. セキュリティ例外は、これらの許可は新しいアクセス許可ごとなど危険な許可されているので、これはAndroidの6
- 14. ó xmlファイルでは許可されていませんが、.netリソースファイルで許可されていますか?
- 15. hibernate:このマッピングは許可されていますか?
- 16. 複数のamp-adノードは許可されていますか?
- 17. RDFで使用されるURIで「クエリ文字列」が許可されていますか?
- 18. 私のWebサービスでクライアントが** POST **リクエストを使用して**削除**を行うことを許可しても、まだRESTfulと見なされていますか?
- 19. CSSで数値操作が許可されていますか?
- 20. エラー:C++では型名が許可されていません
- 21. リモートのテーブル値関数呼び出しは許可されていません
- 22. 一般向けではないiphoneアプリケーションを作成することは許可されていますか?
- 23. LightswitchはMySQLでレコードを追加または変更することを許可していません
- 24. 複数のdocument.readyをページに含めることは許可されていますか?
- 25. 他のプロジェクトで許可されているTeamcityエージェントを制御することはできますか?
- 26. iOS:境界外にペイントすることが許可されています
- 27. iOS:libIOKit.dylibの使用が許可されています
- 28. 署名Android Studioプロジェクトapkとして許可を使用するINJECT_EVENTS
- 29. 列数と名前を使用してSQLテーブル名を選択
- 30. 新しいウィンドウを開いて&サイン/数字を許可する
"識別子は数字で始まることがありますが、引用符で囲まれていない場合は数字だけではない場合があります。" –