OceanBase的insert支持幂等性控制。
什么是幂等性?这来自代数概念:
单目运算, x为某集合内的任意数, f为运算子如果满足f(x)=f(f(x)), 那么我们称f运算为具有幂等性(idempotent)
双目运算,x为某集合内的任意数, f为运算子如果满足f(x,x)=x, f运算的前提是两个参数都同为x, 那么我们也称f运算为具有幂等性
幂等性是系统的接口对外一种承诺(而不是实现), 承诺只要调用接口成功, 外部多次调用对系统的影响是一致的. 声明为幂等的接口会认为外部调用失败是常态, 并且失败之后必然会有重试.
以上内容摘抄自:http://www.smithfox.com/?e=16
insert操作支持幂等性的意思是:对于同一行数据,无论insert执行多少次,最终结果都一致。
update 和 delete 不支持幂等。例如
insert t1 values (c1) values (1),(2),(3),(4);
delete from t1 where c1 > 0 limit 1;
delete from t1 where c1 > 0 limit 1;
delete from t1 where c1 > 0 limit 1;
三次delete,每次执行完成后结果都不同。update类似,也受到了limit的影响。