2017-07-27 5 views
0

アンドロイドを使用してsqliteでデータを追加できます。 列IDは主キーを持つ必要があり、自動増分フィールドである必要があります。 そして、ステータスが0のデフォルト値は、これはsqliteのためにそれを行うための方法であるかどうかわからないしている必要があります。Androidの自動インクリメントとデフォルト値のSqliteクエリ

public static final String DATABASE_NAME="tododata";  
public static final String TABLE_NAME="todolist";  
public static final int KEY_ID= 0;    
public static final String KEY_TITLE="Title";     
public static final String KEY_DESCRIPTION="Description"; 
// public static final Date KEY_DATE = ; 
public static final int KEY_STATUS = 0; 

public static final int DATABASE_VERSON=1;   

public DataHandler(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSON); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("create table "+TABLE_NAME+"(Id integer primary key not null autoincrement 1 , title text not null, description text not null, date date not null, status int default 0);"); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("drop table if exists "+TABLE_NAME); 
} 

答えて

1

これは正しい構文でなければなりません:

CREATE TABLE table_name (Id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, description TEXT NOT NULL, date DATE NOT NULL, status INTEGER DEFAULT 0) 
+0

自動インクリメントの初期値を設定する方法は? @MatPag – thebrightshadow

+0

整数の自動インクリメントの初期値は常に0です。これはSQLiteによって自動的に設定されます。 – MatPag

+0

Dateの値の6行目(コメント付き)には何を書きますか? @MatPag – thebrightshadow

0

あなたのクエリは、この形式のようにする必要があります: -

sqliteDatabase.execSQL("create table tableName ("+COL1_NAME+" integer primary key autoincrement, "+COL2_NAME+" text , "+COL3_NAME+" text , "+COL4_NAME+" text)"); 
関連する問題