xan*_*ngr 2 php postgresql symfony doctrine-orm
可能重复:
如果在PostgreSQL中插入失败,有没有办法避免调用nextval()?
Rails - Postgres不会重复使用已删除的ID但是MySql会这样做吗?
我有一个非常简单的数据库与PostgreSQL 9.2.1.当我使用此方法插入Doctrine2的东西时:
$em->persist($entity);
$em->flush();
Run Code Online (Sandbox Code Playgroud)
如果我收到错误
-means记录不 inserted-
它仍然添加1到我的主键.因此,如果我刷新页面50时间,则表示自动增量值设置为50.我怎么能阻止这个?如果记录没有说明为什么主键增加.这非常关键,因为它使用索引,而且数量不断变大.
我不知道它是什么来的,为什么,所以,我没有尝试任何东西.此时非常困难.
Doctrine2使用事务来完成它的任务.
每次Doctrine将其更改刷新到数据库时,它都会打开一个事务,每个记录都准备好,然后提交将立即执行所有更改.
在此过程中,将auto_increment分配需要ID 的记录.如果记录在提交阶段失败,则不会添加记录,但自动增量已发出该ID.
您可以在此处阅读有关交易的更多信息:http://www.postgresql.org/docs/current/static/tutorial-transactions.html
注意:对于MySQL也是如此,我确信对于许多其他RDBMS也是如此.
| 归档时间: |
|
| 查看次数: |
493 次 |
| 最近记录: |