2016-08-27 3 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) { 

    } 
} 

및 안드로이드 스튜디오이 생각하는 내 SQL 문입니다

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

네 개의 열 이름이 모두 다르고 "uuid"가 아닌 경우. 어떤 아이디어?

+1

이 BTW 왜 응용 프로그램에서 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