Согласно документации sqlite3 , при создании таблицы, в которой первичный ключ представляет собой восходящее целое число, первичный ключ является псевдонимом для rowID.Это не происходит для меня.
Вот мой код создания:
import sqlite3
con = sqlite3.connect("/tmp/emaildb.sqlite3")
c = con.cursor()
try:
c.execute("create table drives (driveid integer primary key asc, drivename text unique);")
con.commit()
except sqlite3.OperationalError:
pass
Вот мой проверочный код:
try:
c.execute("insert into drives (drivename) values (?)",(drivename,))
print "new ID=",c.lastrowid
except sqlite3.IntegrityError:
c.execute("select rowid from drives where drivename=?",(drivename,))
driveid = c.fetchone()[0]
print "old ID=",driveid
Это работает, если я select rowid
но не если я select driveid
.
Что не так?