2010-11-20 5 views
0

Gemäß der sqlite3 documentation wird beim Erstellen einer Tabelle, bei der der Primärschlüssel eine aufsteigende Ganzzahl ist, der Primärschlüssel als Alias ​​für die RowID verwendet. Das passiert nicht für mich.sqlite3-Rowid-Alias ​​wird nicht ordnungsgemäß erstellt

Hier ist meine Schöpfung Code:

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 

Hier ist mein Prüfcodes:

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 

Dies funktioniert, wenn ich select rowid aber nicht, wenn ich select driveid.

Was ist los?

Antwort

Verwandte Themen