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

时间:2019-07-01 19:10:01

标签: mysql sql sql-insert insert-select

我有一个像这样的表

CREATE TABLE {
  email VARCHAR PRIMARY,
  last_login DATE
}

然后我可以填充一个选择结果集,例如:

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

如果我将使用INSERT IGNORE ... SELECT插入该表,是否指定要插入哪一行而忽略哪一行?

找到的规范:

1 个答案:

答案 0 :(得分:2)

insert语句没有指定插入行的顺序,而select语句却指定了行的插入顺序。但是,除非您使用order by子句明确定义顺序,否则顺序select返回的行将完全取决于数据库,并且不应该被信任。

换句话说,如果您关心插入哪一行而忽略哪一行,请在order by语句中添加select子句,并确保要插入的行排在最前面。