2017-01-23 3 views
-1

Я вставив несколько строк в таблице базы данных MySql первая строка становится вставленным, но для остальных он показывает ошибку:MySql автоинкрементным не работает при вставке нескольких строк

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

Это структура id поле:

enter image description here

Если вставить одну строку автоприращение работы файла.

Я не могу исправить проблему. Пожалуйста помоги. Благодарю.

EDIT

Я использую 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 генерируется динамически.

+0

Если вы вставляете несколько строк, тогда не вставляйте идентификатор столбца в запрос mysql. он будет вставлен автоматически. –

+0

Также отправьте запрос mysql, который вы пытаетесь вставить. –

+0

Вы также вставляете значение столбца ID? –

ответ

0

Теперь я получил решение, то ошибка, которую я делал, я генерировал данные с помощью for loop так:

var data = { name:'john', age:24, email:'[email protected]'}; 

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 также может быть причиной, поэтому он не принимает точно такие же значения.

В действительности, все записи не будут такими же. Если у вас есть другой вопрос, пожалуйста, дайте мне знать ваши мысли. Благодарю.

Смежные вопросы