gpt4 book ai didi

PHP - Postgresql 如果返回错误,我如何回滚查询?

转载 作者:行者123 更新时间:2023-11-29 14:37:07 24 4
gpt4 key购买 nike

我正在使用 php 和 postgres 进行增删改查,我想知道如果出现错误是否有办法回滚事务。实际上,如果我在事务中遇到错误,id(主键)会增加,然后我会丢失一个 id 以供将来使用。

我该如何预防?我的意思是,如果 Insert 的查询失败,请不要在表中进行自动递增。

我正在使用一个类来执行查询:

public function insertRecord ($data){
$campos =$this->getTableFields();
$data =implode ("', '", $data);
$sql ="INSERT INTO {$this->table} ($campos) VALUES (";
$sysData =$this->getDefaultValues();
if($sysData){
$sysData .= ",";
$sql .="$sysData ";
}
$sql .="'$data') RETURNING {$this->campoId};";
echo $sql;
pg_query($this->linkid,$sql);
return $this->validateOperation();
}

最佳答案

事务被回滚。但它仍然会用完序列中的一个数字,自动递增值基于该序列。这是设计使然,可防止持久锁定,这会降低并行执行性能。

有一些解决方法:

关于PHP - Postgresql 如果返回错误,我如何回滚查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42737177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com