Метод вставки возвращает 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 ​​..

Другие вопросы по тегам