我是PostgreSQL DB的新手,我尝试在具有ubilinux(Debian)OS的英特尔Edison平台上安装它。我成功安装了它。我可以使用python模块psycopg2成功创建表,插入行等。 但是当我尝试使用psycopg2删除行时,删除不会发生。
在删除之前,db的内容如下:
(1,1,1,1,1,1,1,1)
(2,1,1,1,1,1,1,1)
(3,1,1,1,1,1,1,1)
(4,1,1,1,1,1,1,1)
(5,1,1,1,1,1,1,1)
(6,1,1,1,1,1,1,1)
(7,1,1,1,1,1,1,1)
(8,1,1,1,1,1,1,1)
这是我用来删除第4行的代码。
#!/usr/bin/python
import psycopg2
import sys
conn = psycopg2.connect(database="mydb", user="root", password="edison")
print "Opened database successfully"
cur = conn.cursor()
cur.execute("DELETE FROM data WHERE S=4;")
conn.commit
print "Total number of rows deleted :", cur.rowcount
cur.execute("SELECT * from Data")
rows = cur.fetchall()
for row in rows:
print row
print "Operation done successfully";
conn.close()
此代码的输出为:
成功打开数据库
删除的总行数:1
(1,1,1,1,1,1,1,1)
(2,1,1,1,1,1,1,1)
(3,1,1,1,1,1,1,1)
(5,1,1,1,1,1,1,1)
(6,1,1,1,1,1,1,1)
(7,1,1,1,1,1,1,1)
(8,1,1,1,1,1,1,1)
操作成功完成
但是当我现在使用" SELECT * FROM data;"分别读取数据库中的数据时,数据库中的内容是:
(1,1,1,1,1,1,1,1)
(2,1,1,1,1,1,1,1)
(3,1,1,1,1,1,1,1)
(4,1,1,1,1,1,1,1)
(5,1,1,1,1,1,1,1)
(6,1,1,1,1,1,1,1)
(7,1,1,1,1,1,1,1)
(8,1,1,1,1,1,1,1)
第4行仍然存在于DB中。这意味着删除根本没有发生。但是当我现在分别删除数据库中的第4行时,即不使用python,使用" DELETE FROM data WHERE S = 4;",它的工作原理。但我的要求是使用python删除。
有人可以帮助我吗?先谢谢。:)
此致 阿伦