как мы можем получить идентификатор строки, которую мы вставляем через код

-2

Мне нужно получить идентификатор строки, вставленной только сейчас. у меня есть таблица слов и таблица значений. мне нужен wordId слова, которое я вставляю в таблицу для слов, и этот wordId используется для вставки значения в таблицу значений. Может кто-нибудь мне помочь??

Я думал, что могу использовать триггер и попробовал триггер:

"СОЗДАЙТЕ ТРИГГЕРА, ЕСЛИ НЕ СУЩЕСТВУЕТ word_insert_trigger ПОСЛЕ ВСТАВКИ НА tb_words НАЧАЛО выбрать NEW.word_id из tb_words; END;"

как это. я попробовал это в sqlite dbbrowser. но это не сработало.

мне нужен идентификатор строки, когда я вставляю строку следующим образом: "вставить в значения tb_words (word_name) ('test');"

Как я могу это сделать?

  • 0
    Не являются ли привязки sqlite для Android оболочкой для sqlite3_last_insert_rowid() ?
Показать ещё 3 комментария
Теги:

1 ответ

0

Нет необходимости в триггере. Используйте метод вставки SQliteDatabase. Он возвращает идентификатор (как long) (вернее, он возвращает rowid и при условии, что столбец word_id был определен как псевдоним столбца rowid, тогда возвращаемое значение будет значением, присвоенным столбцу word_id).

Псевдоним RowId столбца определен, если word_id INTEGER PRIMARY KEY кодируется (ключ AUTOINCREMENT может быть использован, но в общем случае не должен быть использован).

Вы можете прочитать SQLite AUTOINCREMENT и/или Rowid Tables

Вместо чего-то вроде: -

db.execsql("insert into tb_words(word_name) values('test');");

Вы бы использовали что-то вроде: -

ContentValues cv = new ContentValues();
cv.put("word_name","test");
long word_id = db.insert("tb_words",null,cv);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню