Поиск:

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


Эксперт
****


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

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



Нужно добавить новую запись в таблицу, primary key которой не известен, но возможно такая запись уже существует.
Как это сделать?
Использую Qt + sqlite, но возможен переход на другие БД.
Придумал пока так:
Код

create table Names (Id integer primary key, Name varchar, Info varchar);
insert or ignore into Names(Id, Name, Info) values(
   (select Id from Names where Name=:Name
    union
    select max(Id)+1 from Names
    order by 1 limit 1), :Name, :Info);

(проверял пока на отдельных select&union и insert)
Но судя по документации, в MySql простые select должны быть в скобках, а sqlite их не разрешает.
Или можно сделать проще?

PM   Вверх
borisbn
Дата 31.3.2012, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



sqlite поддерживает ROWID и AUTOINCREMENT



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

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

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


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

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


 




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


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

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