Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> sqlite3 Выбрать строку lastrowid, Python 3.4 
V
    Опции темы
tishaishii
Дата 6.11.2015, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


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

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



Код

conn = sqlite3.connect( database , detect_types = sqlite3.PARSE_COLNAMES )
dbh = conn.cursor( )
dbh.execute( """
CREATE TABLE IF NOT EXISTS `acc_driver`(
    `id` CHARACTER( 32 ) PRIMARY KEY NOT null DEFAULT ( hex( randomblob( 16 ) ) ) ,
    `name` CHARACTER( 32 ) NOT null ,
    `title` CHARACTER( 32 ) NOT null
)
""" )
dbh.execute( """
INSERT INTO `acc_driver`(
          `name` ,
          `title`
) VALUES (
          ? , ?
)
""" , ( name , title ) )
conn.commit( )
rowid = dbh.lastrowid


Получаю почему-то цыфру "5", хотя, строк в таблице совсем не 5, а 2 (я вручную ввёл) .
Хорошо, пускай будет "5", но что это означает и как теперь узнать `acc_driver`.`id`?
PM MAIL ICQ Skype   Вверх
tishaishii
Дата 6.11.2015, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


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

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



PM MAIL ICQ Skype   Вверх
samssrus
Дата 7.11.2015, 08:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...не смотря на то, что ответ уже найден...
ИМХО использование чистых конструкций "sqlite3.connect", "dbh.execute" не есть хорошо...
для Python существует хорошая ORM - sqlalchemy (http://www.sqlalchemy.org/).

относительно заданного вопроса при использовании sqlalchmy можно было бы написать просто:
rowid = session.query(acc_driver).count() + 1

Этот ответ добавлен с нового Винграда - http://vingrad.com
  Вверх
tishaishii
Дата 8.11.2015, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


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

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



Большое спасибо за ответ.

count()+1 - совсем не хорошо.
А ORM для клиентской программы ещё не хочу. Хочу поменьше кода и объёма.

Добавлено через 30 секунд
Есть 100% вариант по ROWID
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Базы данных | Следующая тема »


 




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


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

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