是否为 INSERT IGNORE ... SELECT 指定了插入顺序?

Is the order of inserts specified for INSERT IGNORE ... SELECT?

我有一个 table 喜欢:

CREATE TABLE {
  email VARCHAR PRIMARY,
  last_login DATE
}

我可以填充 select 结果集,例如:

("a@b.c", "2019-01-01"),
("a@b.c", "2019-02-01")

如果我将使用 INSERT IGNORE ... SELECT 插入到 table 中,是否指定了插入哪一行以及忽略哪一行?

找到规范:

insert 语句未指定行的插入顺序 - select 语句指定。但是,除非您使用 order by 子句显式定义顺序,否则 select returns 行的顺序完全取决于数据库,不应被信任。

换句话说,如果您关心插入哪一行以及忽略哪一行,请在 select 语句中添加一个 order by 子句,并确保要插入的行排在第一位。