在我的Android应用程序中使用自动增量功能在SQL中运行时遇到了一些麻烦。
public static final String TABLE_NAME = "collections";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_TITLE = "title";
public static final String CREATE_STATEMENT = "CREATE TABLE " + TABLE_NAME +
"(" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " +
COLUMN_TITLE + " TEXT NOT NULL" + ")";
create语句是否存在可能导致此问题的主要问题?
答案 0 :(得分:1)
不需要将AUTOINCREMENT NOT NULL
添加到主键,因为主键(列)应该是自动递增的,并且它不能为空。
以下是SQL
查询的示例,您可以编辑该查询以创建自己的表。
public static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + "Your_Table_Name" +
" (" + BaseColumns._ID + " INTEGER PRIMARY KEY," +
"first_column_name" + " TEXT" + "," +
"second_column_name" + " TEXT" + ")";
和BaseColumns
位于package android.provider
中由android提供的界面中,您可以使用该界面创建名为"_id"
答案 1 :(得分:0)
当您插入新值时,不要定义id(它将自动生成),只需使用COLUMN_TITLE。
即使在方案中你也可以跳过id定义,因为sqlite在内部使用RAWID,后者将你的ID别名为RAWID。