AndroidからSqliteへのOrmliteDataTypeマッピングが見つかりません。OrmLite SQLデータ型を見つけましたが、Sqlite列が空白です。誰か私がそれらを見つけることができたのを知っていますか?
データベーススキーマを更新するためにそれらが必要です。
meetingDao.executeRaw("ALTER TABLE meeting ADD closed ????");
AndroidからSqliteへのOrmliteDataTypeマッピングが見つかりません。OrmLite SQLデータ型を見つけましたが、Sqlite列が空白です。誰か私がそれらを見つけることができたのを知っていますか?
データベーススキーマを更新するためにそれらが必要です。
meetingDao.executeRaw("ALTER TABLE meeting ADD closed ????");
あなたが何を求めているのか正確にはわかりませんが、Sqliteはタイプのないデータベースです。すべてが文字列として保存され、基本的に特定の関数を使用して、実行時にそれらの文字列に対して数値や時間などの計算を行うことができます。
Sqliteデータ型ドキュメントから引用するには:
SQLiteは「タイプレス」です。これは、その列の宣言されたデータ型に関係なく、任意のテーブルの任意の列に必要な種類のデータを格納できることを意味します。(以下のセクション2.0のこのルールの1つの例外を参照してください。)この動作は機能であり、バグではありません。データベースはデータを格納および取得することを想定しており、そのデータがどの形式であるかはデータベースにとって重要ではありません。他のほとんどのSQLエンジンに見られ、SQL言語仕様でコード化された強い型付けシステムは、機能の誤りです。これは、インターフェイスに透けて見える実装。SQLiteは、あらゆる種類のデータをあらゆる種類の列に格納できるようにし、データ型の指定に柔軟性を持たせることで、この機能の誤りを克服しようとしています。
あなたが言及したSQLデータ型ページでは、Sqlite列は空白です。これは、ベースデータ列をオーバーライドする必要がないためです。クラスの基本タイプを変更した場合でも、Sqliteはタイプのないデータベースであるため、どのタイプもオーバーライドしません。
実際、元の質問でリンクされているマッピング テーブル: OrmLite SQL データ型は、ORMLite が使用している正しい型を示していますが、ベース データベース列からの各データベースの違いのみを示しています。たとえば、Javalong
は型を持つ列として作成されますBIGINT
。
SQLite3 には型がありませんが、テーブルを作成するときに ORMLite が使用する型アフィニティの概念があります。
おそらく、データベースのアップグレードにもタイプを含める必要があります。そうしないと、ORMLite がスクラッチからテーブル フォームを自動的に作成するときと、アップグレードするときに、異なるテーブル定義が得られます。