INSERT ... SELECT语法不会插入所有行

时间:2014-07-04 10:10:40

标签: mysql sql

当我运行此查询时,它返回总共6,338行。

  SELECT updated.playerId
  FROM updated WHERE updated.updated = 0;

然而,当我运行此查询时,它只插入2,771个行,当它应该插入全部6,338。

  INSERT IGNORE INTO playerold (playerID)
  SELECT updated.playerId
  FROM updated WHERE updated.updated = 0;

我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:1)

如果您看到错误,则需要删除单词IGNORE sql语句。 我认为你在另一个表中有不同的约束。 检查表约束。

您可以尝试CREATE TABLE playerold SELECT playerID FROM updated WHERE updated.updated = 0;

答案 1 :(得分:1)

1如果您想要所有记录并使用以下查询,请删除playerold表中可用的唯一约束:

 INSERT INTO playerold (playerID)
 SELECT updated.playerId
 FROM updated WHERE updated.updated = 0;

或者,

2尝试:

 INSERT INTO playerold (playerID) VALUES (SELECT updated.playerId
 FROM updated WHERE updated.updated = 0) ON DUPLICATE KEY UPDATE playerID=playerID