我有两个mysql表,需要用另一个表中最后一个插入行的最后一个值(加1)来启动自动增量列标识。在脚本mysql中重置自动增量列值
根据MySQL手册,你可以重新启动一个自动递增列的这样的值:
mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;
但是,这是不可能的:
mysql> ALTER TABLE tb2 AUTO_INCREMENT = (SELECT MAX(id) FROM tbl1);
我需要这样,因为执行的东西我正在使用脚本填充表格。有另一种方法来实现它吗?
需要操纵auto_increment指数通常是设计缺陷的症状。为什么表格的ID需要以这种方式关联? – 2010-05-12 21:00:54
不要认为SELECT语句适用于这种情况。你总是可以首先从tbl1查询它。默认情况下,自动增量设置为该表中的最新条目。所以要小心,不要用tbl1覆盖tbl2中的值 - 它们可能已经存在于tbl2中。如果您需要它们相同,请不要使用自动增量,而只需使用tbl1中的id更新tbl2中的id。 – Alec 2010-05-12 21:05:07
这两个表都与第三个表格有关,它们将来会生成其行的ID。由于我必须使用脚本迁移数据,所以填充一张表格,然后填充第二个表格,然后填充生成器表格,然后创建外键。 – Lucia 2010-05-12 21:08:59