Python psql-如何在不删除表的情况下刷新数据库内容

Python psql-如何在不删除表的情况下刷新数据库内容,python,psycopg2,postgresql-9.2,psql,Python,Psycopg2,Postgresql 9.2,Psql,我在数据库中有一个名为“mytable”的表。我想澄清一下,这样我就可以继续从中收集和分析“新数据” 差不多 conn = psycopg2.connect(database = mydb_name, host = mydb_server, user = mydb_uname, password = mydb_pwd) cur = conn.cursor() cur.execute("DROP TABLE mytable;") 这对我不起作用,因为据我所知,这会破坏桌子。我不想破坏/重建。。。

我在数据库中有一个名为“mytable”的表。我想澄清一下,这样我就可以继续从中收集和分析“新数据”

差不多

conn = psycopg2.connect(database = mydb_name, host = mydb_server, user = mydb_uname, password = mydb_pwd)
cur = conn.cursor()
cur.execute("DROP TABLE mytable;")
这对我不起作用,因为据我所知,这会破坏桌子。我不想破坏/重建。。。只是刷新所有数据


如何解决此问题?

此sql查询应删除表中的所有记录

DELETE FROM mytable; // not DELETE * FROM mytable;
对于这一点很有用,表只保留删除数据

如果您有外键,则需要使用以下命令

 Truncate tablename CASCADE
因为很多桌子都是这样的

 Truncate table1, table2, table3
你的榜样

 Cur.execute("truncate mytable;")

如何避免枚举所有表名,而只是截断所有表中的所有数据<代码>从*中删除*?或者,
TRUNCATE*
?@jml检查这段代码冻结了我的机器,因为有一个并发的python可执行文件正在传播数据库。你能推荐一个替代方案吗?您认为这可能是因为传播代码库依赖于ID吗?如doc:TRUNCATE中所述,它会快速删除一组表中的所有行。它与对每个表执行非限定删除的效果相同,但由于它实际上不扫描表,因此速度更快。此外,它可以立即回收磁盘空间,而不需要后续的真空操作。这在大桌子上最有用。但是,如果您处于并发上下文中,则删除更安全。
 Cur.execute("truncate mytable;")