sqlite3 Python删除列

时间:2016-12-01 13:40:56

标签: python sqlite

哇,在sqlite中删除一个列是非常困难的,而且我在过去的两天里一直在尝试20件事。

目前我有一些代码不会给我一个错误(欢呼!),但它也没有给我任何结果。

我正在使用SQL:FAQ的思维方式 - http://www.sqlite.org/faq.html#q11但是我被困在我的代码运行没有错误的地方,但是当我使用数据库浏览器打开数据库时,新表只有我复制了一个,但没有复制数据。

以下是代码:

    backup = "backup"
    c.execute("CREATE TABLE IF NOT EXISTS {bu} (id INTEGER PRIMARY KEY AUTOINCREMENT, headline TEXT, datestamp TEXT, link TEXT)".format(bu=backup))
    c.execute("INSERT INTO {dt} SELECT {id}, {hl}, {ds}, {lk} FROM {on}".format(dt=backup, id="id", hl="headline", ds="datestamp", lk="link", on=old_table))

就像我说的那样,它会运行,但新表中没有数据,只有列的标题。

除了沮丧之外,任何帮助都将受到赞赏

1 个答案:

答案 0 :(得分:0)

虽然您的代码段中包含了根据您收到的评论可能出现的其他一些问题,但要将信息提供给"显示"特别是在数据库中,您需要完成交易。

backup = "backup"
c.execute("CREATE TABLE IF NOT EXISTS {bu} (id INTEGER PRIMARY KEY AUTOINCREMENT, headline TEXT, datestamp TEXT, link TEXT)".format(bu=backup))
c.execute("INSERT INTO {dt} SELECT {id}, {hl}, {ds}, {lk} FROM {on}".format(dt=backup, id="id", hl="headline", ds="datestamp", lk="link", on=old_table))
conn.commit()

否则当你离开"范围"这些变量(可能是你的脚本的结尾)事务将作为sqlite3完成的拆卸的一部分回滚。