Поиск:

Ответ в темуСоздание новой темы Создание опроса
> sqlite: присвоение primary key 
:(
    Опции темы
math64
Дата 30.7.2014, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: нет
Всего: 72



sqlite
Код

create table objects(id_object integer primary key, name varchar)
create table parts(id_object integer,id_part integer primary key, name varchar)
create table links(id_object integer,id_part integer, id_part2 integer, primary key(id_part,id_part2))

При обновлении объекта удаляется
Код

delete from objects where id_object=?
delete from parts where id_object=?
delete from links where id_object=?

а затем вставляются заново,
Код

insert into objects(name)values(?)

 
primary key заполняются автоматически базой данных, но получают новые значения.
Можно ли сделать, чтобы использовались старые значения (если конечно не специально запоминать и использовать их)?
PM   Вверх
borisbn
Дата 25.8.2014, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



Отсюда
Цитата
The normal ROWID selection algorithm described above will generate monotonically increasing unique ROWIDs as long as you never use the maximum ROWID value and you never delete the entry in the table with the largest ROWID. If you ever delete rows or if you ever create a row with the maximum possible ROWID, then ROWIDs from previously deleted rows might be reused when creating new rows and newly created ROWIDs might not be in strictly ascending order.

Так что можно попробовать такое извращение: когда удаляешь строку, добавить строку с максимальным RAWID и тут же удалить её.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.1158 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.