Python 如何使用pandas read\u sql\u查询方法删除postgres中的行而不删除表?

Python 如何使用pandas read\u sql\u查询方法删除postgres中的行而不删除表?,python,pandas,postgresql,Python,Pandas,Postgresql,我想执行一个操作,删除所有的行,但不删除postgres中的表并更新其中的新行。我想使用pandas的pd.read\u sql\u查询方法: qry = 'delete from "table_name"' pd.read_sql_query(qry, conection, **kwargs) 但它抛出了错误'ResourceClosedError:此结果对象不返回行。它已经自动关闭了。” 我可以预料到这一点,因为该方法应该返回空数据帧。但它没有返回任何空数据帧,只是返回了上面的错误。你能帮

我想执行一个操作,删除所有的行,但不删除postgres中的表并更新其中的新行。我想使用pandas的pd.read\u sql\u查询方法:

qry = 'delete from "table_name"'
pd.read_sql_query(qry, conection, **kwargs)
但它抛出了错误'ResourceClosedError:此结果对象不返回行。它已经自动关闭了。”


我可以预料到这一点,因为该方法应该返回空数据帧。但它没有返回任何空数据帧,只是返回了上面的错误。你能帮我解决一下吗???

我使用MySql,但逻辑是一样的:

查询1:从表中选择所有ID

问题2:删除所有这些ID

因此,您有:

从表\u名称中删除,其中id位于从表\u名称中选择id

该行不返回任何内容,它只是删除所有具有特殊id的行。我建议只使用psycopg-no执行该命令

然后,您需要另一个查询来从db获取smth,如:

pd.read\u sql\u querySELECT*来自表名称,连接,**kwargs

可能我不使用pandas从数据库中读取数据,在这种情况下,您将得到带有列名的空数据帧

可能您可以通过以下方式组合所有操作:

pd.read_sql_query'Delete FROM table_name,其中id在Select id FROM table_name中;从表格名称、连接中选择***kwargs

请尝试并分享您的结果。

您可以按照以下步骤操作

首先在表中选中“行存在”。 然后删除行 示例代码


是的,真的,谢谢。我也从中找到了类似的方法并尝试了。成功了。无论如何,非常感谢。@Vamshi感谢您提供的信息,如果解决方案工作正常,请将其标记为解决方案。
check_row_query = "select exists(select * from tbl_name limit 1)"
check_exist = pd.read_sql_query(check_row_query, con)
if check_exist.exists[0]:
    delete_query = 'DELETE FROM tbl_name WHERE condtion(s)'
    con.execute(delete_query) # to delete rows using a sqlalchemy function
    print('Delete all rows!)
else:
    pass