如何使用Doctrine更改mysql表的auto_increment

时间:2010-06-16 08:23:52

标签: php mysql doctrine

问题说这一切都在想:-) 执行查询的最佳方法是:

ALTER TABLE tablename AUTO_INCREMENT = 1;

使用Doctrine?

2 个答案:

答案 0 :(得分:2)

你必须在PHP中正常执行查询,因为这不是Doctrine所支持的。

请注意,如果您运行ALTER TABLE tablename AUTO_INCREMENT = 1;,那么下一个值将是当前表中最高的值+ 1.如果表中已有记录,则不会将值显式设置为1.

答案 1 :(得分:0)

您是否试图操纵表格的自动增量值?如果你想这样做,你可以做

SET @@auto_increment_increment=10;

请记住,这是一个影响所有表的系统范围变量。

一般来说,我不鼓励你操纵主键(我只是假设thsi)的生成方式。

如果您需要提供自定义值,例如i * 10,您可以编写一个触发器/函数来完成工作或更轻松,您可以创建一个视图,为您提供最后插入的ID(例如150)并将你的价值(例如10)添加到它,这样你就可以获得160.

学说本身不支持这个(据我所知),这在我看来很好。如果你需要为主键设置不同的增量,例如PostgreSWL和Oracale就可以这样做,因为它们使用序列来生成可由dev操作的键