【发布时间】:2017-08-01 21:46:51
【问题描述】:
我正在使用 php 和 postgres 进行 CRUD,我想知道是否有办法在出现错误时回滚事务。 实际上,如果我在事务中遇到错误,则 id(主键)会增加,那么我会丢失一个 id 以供将来使用。
我该如何预防呢?我的意思是,如果插入的查询失败,不要在表中进行自动递增。
我正在使用一个类来执行查询:
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();
}
【问题讨论】:
-
看看Transactions。
-
@tyteen4a03,我读过它,但我问,我有一个名为 PG 的类,我将所有语句(插入、更新、选择、删除)放在其中,然后我有单独的类表的使用(文章,art_mov,art_warehouse),并且在每个类中我调用传递表和条件的语句,鉴于它,我必须在每个类中创建 sql 语句?因为在每个表中我都没有进行相同的查询 - 现在我不知道如何解释我的问题
标签: php postgresql auto-increment