来自同步来源的mysql大量插入的Ids

时间:2009-09-25 14:20:25

标签: php mysql

我在php&用户在特定表中写入和读取的mysql。其中一种写入模式是批处理,只使用多个值进行一次查询。该表具有自动递增的ID。 我们的想法是,对于插入的表中的每一行,将副本作为历史记录日志插入到单独的表中,包括生成的ID。

问题是多个用户可以同时执行此操作,我需要确保加载的ID是正确的。

如果我这样做,我能确定:

INSERT INTO table1 VALUES ('','test1'),('','test2')

生成的ID是顺序的吗?

如何获取刚加载的Id,并确保那些刚刚加载的ID?

我想到了LOCK TABLE,但用户不应该注意这一点。

希望我明白自己......

2 个答案:

答案 0 :(得分:1)

构建一个需要生成ID顺序的应用程序通常意味着你采取了错误的方法 - 当你必须在某天删除一个值时会发生什么,你是否要重新排序整个表?更好地让值尽可能地降低,使用主键来防止重复。

答案 1 :(得分:0)

基于myisam和innodb的当前实现,是的。但是,将来不能保证这一点,所以我不会依赖它。