powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / как мне получить значение автоинкрементного поля в свежедобавленной записи?
8 сообщений из 8, страница 1 из 1
как мне получить значение автоинкрементного поля в свежедобавленной записи?
    #39561768
lexalex83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как мне получить значение автоинкрементного поля в свежедобавленной записи?

вот я сделал инсерт, а поле ID у меня автоинкремент
как мне узнать какое там получилось ID??

вот к примеру база вот к примеру база, и я хочу добавить в таблицу LST_FILES новую запись и сразу узнать какой у меня получился file_id

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE TABLE [LST_FILES] (
  [file_id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
  [file_name] VARCHAR NOT NULL, 
  [file_path] VARCHAR NOT NULL, 
  [file_er] BOOLEAN NOT NULL DEFAULT 0);

CREATE UNIQUE INDEX [idx_file_name] ON [LST_FILES] ([file_name]);


CREATE TABLE [PARTS] (
  [part_id] INTEGER PRIMARY KEY AUTOINCREMENT, 
  [part_name] varchar NOT NULL);

CREATE UNIQUE INDEX [idx_part_name] ON [PARTS] ([part_name] ASC);


CREATE TABLE [parts_and_file_assignment] (
  [part_id] INTEGER CONSTRAINT [idx_foreign_part] REFERENCES [PARTS]([part_id]) ON DELETE CASCADE, 
  [file_id] INTEGER CONSTRAINT [idx_foreign_file] REFERENCES [LST_FILES]([file_id]) ON DELETE CASCADE);

CREATE UNIQUE INDEX [idx_part_file_accord] ON [parts_and_file_assignment] ([part_id] ASC, [file_id] ASC);


...
Рейтинг: 0 / 0
как мне получить значение автоинкрементного поля в свежедобавленной записи?
    #39561856
lexalex83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это будет норм если я сделаю сначала

Код: sql
1.
INSERT INTO LST_FILES (file_name, file_path) VALUES ('File2derfdf1435561r','dfdfdf');


а потом

Код: sql
1.
SELECT MAX(part_id) FROM parts;



??
...
Рейтинг: 0 / 0
как мне получить значение автоинкрементного поля в свежедобавленной записи?
    #39561857
lexalex83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин как тут редактировать сообщения
...
Рейтинг: 0 / 0
как мне получить значение автоинкрементного поля в свежедобавленной записи?
    #39561886
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lexalex83,

если запросом то

Код: sql
1.
select last_insert_rowid();



если в приложении то API

Код: plaintext
1.
sqlite3_last_insert_rowid(sqlite3*);
...
Рейтинг: 0 / 0
как мне получить значение автоинкрементного поля в свежедобавленной записи?
    #39586316
При запуске программы читайте максимальное значение, храните его в программе, при вставке инкрементируйте и явно указывайте.
...
Рейтинг: 0 / 0
как мне получить значение автоинкрементного поля в свежедобавленной записи?
    #39586377
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соискатель С++При запуске программы читайте максимальное значение, храните его в программе, при вставке инкрементируйте и явно указывайте.

даладно.... а если разные потоки? процессы?
...
Рейтинг: 0 / 0
как мне получить значение автоинкрементного поля в свежедобавленной записи?
    #39586476
Нет никаких проблем использовать общие данные в разных потоках. Указатель базы они как-то получают.
А использовать один файл SQLite одновременно в разных процессах вообще не стоит, лучше взять более подходящую БД.
...
Рейтинг: 0 / 0
как мне получить значение автоинкрементного поля в свежедобавленной записи?
    #39586479
Ролг Хупиндаладно.... а если разные потоки? процессы?

Что вернет sqlite3_last_insert_rowid(sqlite3*) при одновременной работе в разных потоках и процессах ?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / как мне получить значение автоинкрементного поля в свежедобавленной записи?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]