CREATE TABLE ... SELECT对AUTO_INCREMENT列的ORDER BY吗?

时间:2015-12-16 10:51:45

标签: mysql

根据counter指令,SELECT的排序方式与ORDER BY完全相同,以便counteruserid内具有严格的连续值?< / p>

CREATE TEMPORARY TABLE Tmp(
  counter BIGINT not null auto_increment,
  primary key (counter)
) SELECT userid, itemid
FROM Items WHERE typeid=5 ORDER BY userid;

据我测试,它有效,但在所有情况下都能保证吗?有一些对mysql文档的引用会很好(CREATE TABLE ... SELECT上的文档没有涵盖那些)。

1 个答案:

答案 0 :(得分:0)

我发现的最相关的文档是17.4.1.1 Replication and AUTO_INCREMENT,它似乎保证至少在使用INSERT INTO时排序:

CREATE TEMPORARY TABLE Tmp(
  counter BIGINT not null auto_increment,
  userid BIGINT not null,
  itemid INT not null,
  primary key (counter)
);
INSERT INTO Tmp SELECT userid, itemid
FROM Items WHERE typeid=5 ORDER BY userid;

如果没有人能回答更好的事情,那么会使用该语法。