2016-07-30 21 views
-1

テーブルを電子メール(例:[email protected])をテーブル名として動的に作成するアンドロイドアプリケーションを作成しています。後でテーブル名に "@"のような特殊文字を使うことはできないことを知りました。
"@"や "。"のような特殊文字を使ってテーブルを作成する方法を教えてください。テーブル名にsqliteデータベースのテーブル名の特殊文字

+0

これは[tag:sqlite]か[tag:mysql]ですか?現在、両方でタグ付けされています。 – Mureinik

+1

電子メールアドレスごとにテーブルを持つことが適切な解決策であると思われる理由はわかりません。たとえそうであっても、サポートされているテーブル名(順番にまたはランダムに生成されたもの)を使用し、電子メールアドレスをテーブル名にマップするテーブルを用意します。 – CommonsWare

+0

@Mureinik:そのSQLite。問題の解決策はありますか? –

答えて

0

See this

は、上記のリンクに基づいて、Uは、電子メールアドレスの周り

`

使用してそれを行うことができます。 しかし、それは本当に悪い習慣であると言われています。

1

これはコメントには長すぎます。簡単な答えは、SQLiteはエスケープ識別子のために二重引用符と角括弧の両方をサポートしていることです。

しかし、正しい答えは、私はなぜ別のテーブルが各電子メールに対して作成されるのか想像できないということです。電子メールアドレスは通常、エンティティの属性、したがって列です。電子メールアドレスがエンティティ自体を表していたとしても、複数の電子メールを単一のテーブルに格納して、電子メールを主キーとして使用することをお勧めします。

何らかの理由で、個々のユーザーの処理のために一時テーブルが必要な場合は、create temporary tableを使用します。