2016-08-27 10 views
-1

重複するカラム名がありますが、そうではありません。SQLiteは "重複カラム名"を返しますが、重複カラム名はありません

public class CrimeDBSchema { 

    public static final class CrimeTable{ 
     public static final String NAME = "crimes"; 


     public static final class Cols{ 

      public static final String UUID = "uuid"; 
      public static final String TITLE = "title"; 
      public static final String DATE = "date"; 
      public static final String SOLVED = "solved"; 

     } 

    } 
} 

、これはSQLiteOpenHelperを拡張するクラスです:

public class CrimeBaseHelper extends SQLiteOpenHelper { 

    private static final int VERSION = 1; 
    private static final String DATABASE_NAME = "crimeBase.db"; 

    public CrimeBaseHelper(Context context){ 
     super(context, DATABASE_NAME, null, VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 

     db.execSQL("create table "+ CrimeTable.NAME + "(" + 
       "_id integer primary key autoincrement, " + 
       CrimeTable.Cols.UUID + ", " + 
       CrimeTable.Cols.TITLE + ", "+ 
       CrimeTable.Cols.DATE + ", " + 
       CrimeTable.Cols.SOLVED + ")"); 


    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

    } 
} 

とAndroidStudioが、これは私のSQL文であると考えて:

これは私のスキーマクラスでこのコード

を見てみましょう

create table crimes(_id integer primary key autoincrement, uuid, uuid, uuid, uuid) 

4つの列名のすべてが明らかに異なっていて "uuid"でない場合。何か案は?

+1

(列のデータ型を定義する)そのようにする必要がありますところで、なぜあなたのアプリでDBを作成しますか?あなたはそれを事前に作成し、あなたのアプリでAssetとして展開することができます。より簡単に。 –

+2

プロジェクトをクリーンアップして再構築する –

+0

@juergendまたはhttps://github.com/requery/requeryたとえば –

答えて

0

プライマリキーは整数データ型として定義しますが、他のものはどうしたらいいですか。

public static final class Cols{ 
     public static final String ID = "_id"; 
     public static final String UUID = "uuid"; 
     public static final String TITLE = "title"; 
     public static final String DATE = "date"; 
     public static final String SOLVED = "solved"; 
} 

あなたdb.execSQLが

db.execSQL("create table "+ CrimeTable.NAME + "(" + 
       CrimeTable.Cols.ID + " integer primary key autoincrement, " + 
       CrimeTable.Cols.UUID + " text, " + 
       CrimeTable.Cols.TITLE + " text, "+ 
       CrimeTable.Cols.DATE + " text, " + 
       CrimeTable.Cols.SOLVED + " text)"); 
+1

型を定義する必要はありません。 – nhrnjic6

関連する問題