在SQLite3中添加列,然后填充i

2024-10-01 09:16:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用SQLite 3.6,并在Fedora14上使用Python2.7连接到它。在

我试图使用altertable向表中添加列,然后立即用新创建的列的数据更新表。通过python,我在数据库的新列中只得到空值。如果我在终端中通过sqlite3运行查询,它就可以工作了。在

这是经过消毒的python

def upgrade(cursor)
    cursor.execute("ALTER TABLE Test ADD COLUMN 'Guid' TEXT")

    cursor.execute("SELECT DISTINCT Name FROM Test WHERE ForeignKey=-1")
    # Loop using a row factory that puts all the Names into a list called NameList

    for Name in NameList:
        Guid = uuid.uuid4()
        cursor.execute("UPDATE Test SET Guid=? WHERE Name=?", (str(Guid),Name))

SQLite3连接由python的main函数管理,并且在python脚本结束时提交连接。python执行时不会出错,debug语句显示在select调用中找到了所有正确的行。但是,当我使用Sqliteman或sqlite3查看数据库时,在新列中只看到null。在

这是我的sqlite3调用。在

^{pr2}$

这是有原因的。我在我期望的地方看到了——假的——guid。在

我束手无策。在


Tags: 数据nametest数据库终端executesqlitewhere