【问题标题】:MySql auto-increment not working while inserting multiple rows插入多行时MySql自动增量不起作用
【发布时间】:2017-06-07 14:01:21
【问题描述】:

我在 MySql 数据库表中插入多行,第一行被插入,但其余显示错误:

[Error: ER_DUP_ENTRY: Duplicate entry '2' for key 'PRIMARY']
  code: 'ER_DUP_ENTRY',
  errno: 1062,
  sqlState: '23000',
  index: 1,

这是id字段的结构:

如果我插入单行,自动增量工作文件。

我无法解决问题。请帮忙。谢谢。

编辑

我正在使用node-rom2,代码是

modelObj.create(arrayOfObjects, function (err, result) {
      if (err) {
         console.log("The error is :", err);
      }
      else {
         response.status = 'success';
         response.data = result;
      }
    next(response);
});

SQL 查询是动态生成的。

【问题讨论】:

  • 如果插入多行,则不要在 mysql 查询中插入列 ID。它会自动插入。
  • 另外请发送您尝试插入的 mysql 查询。
  • 您是否也插入了 ID 列值?
  • 您的插入查询不应包含 id 列
  • @Jyoti_Mishra,我没有插入id,我只是发送其他值。

标签: mysql auto-increment


【解决方案1】:

现在我得到了解决方案,我犯的错误是我使用for loop 生成数据,如下所示:

var data = { name:'john', age:24, email:'abc@abcd.com'};

var arrayOfObjects= [];

for (var i = 0; i < 4; i++){
   arrayOfObjects.push(data);
}

modelObj.create(arrayOfObjects, function (err, result) {
      if (err) {
         console.log("The error is :", err);
      }
      else {
         response.status = 'success';
         response.data = result;
      }
    next(response);
});

所以在这种情况下,每条记录都是相同的。但是,除了id 之外,没有具有primary-key 属性的列。 我认为这可能是数据库的行为或 node-orm2 也可能是原因,所以它不接受完全相同的值。

实际上,所有记录都不会相同。如果您有其他观点,请告诉我您的想法。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2012-04-25
    • 1970-01-01
    • 2023-03-30
    • 2013-08-29
    • 2013-08-24
    • 1970-01-01
    相关资源
    最近更新 更多