我试图通过以下方式删除postgresql db中“ null”的一些行:
async def delete_empty_batches():
query = Batches.delete().where(Batches.c.acquired_by_warehouse_date is None)
database.execute(query).fetchall()
s = Batches.select()
return await database.execute(s).fetchall()
但是什么都没有发生。我试图在pgadmin中进行查询,但它起作用了,但我无法与Python相处。 我在编程方面是绿色的,我应该如何处理?
分析解答
尝试使用下一个代码段:
from sqlalchemy import select, delete
from sqlalchemy.exc import IntegrityError
async def delete_and_select_batches():
async with database.transaction():
# Delete rows with null values in acquired_by_warehouse_date column
delete_query = delete(Batches).where(Batches.c.acquired_by_warehouse_date == None)
await database.execute(delete_query)
# Select remaining rows
select_query = select([Batches])
result = await database.execute(select_query)
return result.fetchall()
注意:使用==
代替where
子句中的is
来比较平等的值。