【发布时间】:2013-12-07 16:19:47
【问题描述】:
例如:我创建新模型,将 id 字段设置为 1 并保存。它运行良好并以 id = 1 保存到数据库中。我打开 MySQL 控制台并从表中删除所有记录。当我删除它时,再次创建新模型并将 id 字段设置为 1 - 它实际上将其保存为 2 作为 id 字段值。
我猜 Yii 从 mysql 获取当前的 auto_increment 值并覆盖我的 id 值。有没有办法防止这种行为?
编辑(我的代码示例):
$sn = new SaplingNode();
$sn->id = 1;
$sn->save();
我调用它两次,在调用之间我使用 mysql 控制台删除记录。就是这样。
【问题讨论】:
-
Yii 自己重新实现自动增量是荒谬的,数据库是处理这个问题的正确地方。如果有的话,Yii 更有可能没有将您的特定值分配给主键字段并让自动增量完成其工作,但是如果没有您的代码,就无法判断是否真的如此。
-
@DCoder - 我不想让 Yii 重新实现自动增量,而是用我指定的 id 进行简单的插入。我添加了代码,但实际上并不相关,因为它很简单创建和保存模型。
标签: php mysql yii auto-increment