如何从表中删除记录?
我在从我的SQLite3数据库中删除一条记录时遇到了问题:
conn = sqlite3.connect('databaza.db')
c = conn.cursor()
data3 = str(input('Please enter name: '))
mydata = c.execute('DELETE FROM Zoznam WHERE Name=?', (data3,))
conn.commit()
c.close
一切看起来都没问题,没有错误提示,但删除功能就是不管用!
有没有人知道怎么回事?
7 个回答
3
我来得有点晚,不过如果你在谷歌上搜索“python sqlite 删除行”,你会发现这篇文章是第一个出现的。我之前也遇到过同样的问题,就是我的sqlite数据库里的数据没有被删除。
我在Debian Jessie上使用的是Python 2.7。之前我写Python代码来添加和获取sqlite数据库里的信息时,命令的大小写我都写对了,结果一切正常。
curs.execute("SELECT example_column1 FROM example_table WHERE example_column2=(?)", (Variable,))
但是……
curs.execute("DELETE FROM example_table WHERE example_column1=(?)", (Variable,)):
不知道为什么,DELETE命令却不行。我必须把这个命令全部用小写字母写,sqlite才会接受这个命令。
conn=sqlite3.connect('example.db')
curs=conn.cursor()
curs.execute("delete from example_table where example_column=(?)", (Variable,))
conn.commit()
conn.close()
我也不知道为什么会这样。我试过之前提到的所有方法,但只有用小写字母发送命令才能让它工作。希望这能帮助到一些在学习Python和sqlite时遇到困难的新手。
-8
感谢所有尝试帮助的人。正确的代码是:
conn = sqlite3.connect('databaza.db')
c = conn.cursor()
conn.text_factory = str
data3 = str(input('Please enter name: '))
query = "DELETE FROM Zoznam WHERE Name = '%s';" % data3.strip()
print(query)
mydata = c.execute(query)