Метод вставки возвращает 1 два раза в Sql Lite для Android
В моем приложении я добавляю строку в базу данных. Но rowid прибывает 1 два раза раньше. В чем может быть проблема?
long rowId=getWritableDatabase().insert(TABLE_MEDIA_DETAILS, null, contentValues);
Привет,
Создание таблицы происходит следующим образом.
db.execSQL("CREATE TABLE " + TABLE_MEDIA_DETAILS + " (" + COLUMN_PROJECT_ID + " LONG," + COLUMN_MEDIA_ID + " LONG," + COLUMN_MEDIA_SEQUENCE
+ " INTEGER," + COLUMN_MEDIA_PATH + " TEXT," + COLUMN_MEDIA_TYPE + " TEXT,"+ COLUMN_TITLE_STYLE + " TEXT,"+ COLUMN_TITLE_TEXT + " TEXT,"
+ COLUMN_IMAGE_DURATION + " INTEGER," + COLUMN_TRIM_LEFT + " INTEGER," + COLUMN_TRIM_RIGHT + " INTEGER,"
+ "PRIMARY KEY( " + COLUMN_PROJECT_ID + ","
+ COLUMN_MEDIA_SEQUENCE + " ));");
Как вы можете видеть, у меня уже есть первичный ключ для комбинации двух столбцов, таких как project_id и column_media_sequence, поэтому у меня не может быть другого первичного ключа в этой таблице, поэтому я не могу создать еще один.
1 ответ
Решение
Если мне удалось правильно понять ваш вопрос - убедитесь, что вы добавляете AUTOINCREMENT
когда вы создаете свою таблицу
например
db.execSQL("create table " + TABLE + " (" + C_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ C_USERNAME + " text)");
и не отправляйте значение вашего столбца идентификатора в contentValues ..