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

标签 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;

我在这里遗漏了什么吗?

最佳答案

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

关于mysql - INSERT ... SELECT 语法不会插入所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24571892/

相关文章:

java - 如何将MySQL数据库中的数据导出为特定格式的.flr或.pl文件

mysql - 如何在两个表中找到匹配的行,第二个不存在

mysql - 从具有特定元素的列记录中拆分一条或多条记录

mysql - 删除query1具有的query2的选择值

sql - POSTGRESQL 如何将子表的行插入到父表的数组中

sql - PostgreSQL 9.3 : Filter in Pivot table query

mysql - 如何将 CSV 加载到 MySQL?

mysql - 为什么我在此查询中得到 NULL?

mysql - 如何通过 phpmyadmin 批量删除 WordPress 帖子内容中的样式?

php - MySQL-query 返回空结果添加有效条件(仅在脚本中,不在 phpmyadmin 中)