Python Postgres:在做之前测试插入或更新?
我们有一个表,其中只包含一个特定类型的条目,因此如果我们收到一个插入请求,我们将删除所有内容,然后执行插入。插入来自用户数据,有时会抛出错误(可能他们没有填写某些内容,等等),我们最终会得到一堆已删除的数据。我们正在处理所有的数据处理,因此不再出现类似的错误,但我想知道:Python Postgres:在做之前测试插入或更新?,python,postgresql,testing,transactions,rollback,Python,Postgresql,Testing,Transactions,Rollback,我们有一个表,其中只包含一个特定类型的条目,因此如果我们收到一个插入请求,我们将删除所有内容,然后执行插入。插入来自用户数据,有时会抛出错误(可能他们没有填写某些内容,等等),我们最终会得到一堆已删除的数据。我们正在处理所有的数据处理,因此不再出现类似的错误,但我想知道: 在实际执行插入或更新之前,是否有办法测试插入或更新是否有效?打开一个会话,然后以以下方式执行所有操作: 一切都将被回滚。但也有一些可能的副作用:递增的序列不会重置。无法回滚某些函数,如dblink()。普通插入或更新是安全的。
在实际执行插入或更新之前,是否有办法测试插入或更新是否有效?打开一个会话,然后以以下方式执行所有操作: 一切都将被回滚。但也有一些可能的副作用:递增的序列不会重置。无法回滚某些函数,如
dblink()
。普通插入
或更新
是安全的。请注意,只要事务处于打开状态,您就可能锁定行
然而如果你使用的是有价值的数据,你不应该这样玩弄它。创建数据库副本以进行测试。打开一个会话,然后在一个: 一切都将被回滚。但也有一些可能的副作用:递增的序列不会重置。无法回滚某些函数,如
dblink()
。普通插入
或更新
是安全的。请注意,只要事务处于打开状态,您就可能锁定行
然而如果你使用的是有价值的数据,你不应该这样玩弄它。创建数据库副本以进行测试。打开一个会话,然后在一个: 一切都将被回滚。但也有一些可能的副作用:递增的序列不会重置。无法回滚某些函数,如
dblink()
。普通插入
或更新
是安全的。请注意,只要事务处于打开状态,您就可能锁定行
然而如果你使用的是有价值的数据,你不应该这样玩弄它。创建数据库副本以进行测试。打开一个会话,然后在一个: 一切都将被回滚。但也有一些可能的副作用:递增的序列不会重置。无法回滚某些函数,如
dblink()
。普通插入
或更新
是安全的。请注意,只要事务处于打开状态,您就可能锁定行
然而如果你使用的是有价值的数据,你不应该这样玩弄它。创建数据库副本以进行测试。听起来您应该使用数据库事务:错误时回滚,成功时提交。这非常完美。谢谢。听起来你应该使用数据库事务:错误回滚,成功提交。这太完美了。谢谢。听起来你应该使用数据库事务:错误回滚,成功提交。这太完美了。谢谢。听起来你应该使用数据库事务:错误回滚,成功提交。这太完美了。谢谢
BEGIN;
INSERT ...
-- check if it worked
ROLLBACK;