Нарушение ограничения целостности: 1062 Дублирующая запись '1' для ключа 'PRIMARY'
У меня проблема с базой данных, где я получаю нарушение ограничений целостности: 1062.
Я пробовал некоторые вещи сам по себе, но он didtn работать так теперь я прошу вас, ребята, посмотреть, могут ли вы люди помочь мне.
elseif($action == 'add') {
if($_POST['create'] == true) {
$title = $_POST['txtTitle'];
$txtParentCategorie = $_POST['txtParentCategorie'];
$txtContent = $_POST['txtContent'];
if($txtParentCategorie == "niks") {
$txtParentCategorie = NULL;
$chkParent = 1;
$order_count = countQuery("SELECT categorieID FROM prod_categorie WHERE parentID=?",array(1));
$order = $order_count + 1;
} else {
$chkParent = null;
$order_count = countQuery("SELECT categorieID FROM prod_categorie WHERE parentID is not NULL");
$order = $order_count + 1;
}
Query("INSERT INTO prod_categorie (categorieID, parentID) VALUES (?, ?)", array($chkParent, $txtParentCategorie));
$inserted_id = getLastInsertId();
Query("INSERT INTO tekst (tabel, kolom, item_id, tekst, taalID) VALUES(?, ?, ?, ?, ?)", array('prod_categorie', 'categoriename', $inserted_id, $title, $lang));
Query("INSERT INTO tekst (tabel, kolom, item_id, tekst, taalID) VALUES(?, ?, ?, ?, ?)", array('prod_categorie', 'content', $inserted_id, $txtContent, $lang));
$languages = selectQuery("SELECT taalID FROM taal WHERE taalID!=?",array($lang));
}
когда я запускаю это, первый INSERT INTO не заполняет никаких данных и не дает эту ошибку:
Нарушение ограничения целостности: 1062 Дублирующая запись '1' для ключа 'PRIMARY'
там уже есть первичный 1 ключ. но он находится на автоматическом приращении.
в столбце tekst item_id получает вход 0.
JavaScript:
$('.btnAddCategorie').click(function(){
if(busy != 1){
busy = 1;
var error = 0;
var gallery = $('select[name="gallery_dropdown"]').val();
if($('input[name="txtTitle"]').val() == ''){
error = 1;
alert('Het titel veld is nog leeg');
$('input[name="txtTitle"]').focus();
}
if(error != 1){
$('.content_load_icon').html('<img src="../../includes/images/layout/load_small.gif" />');
var content = $('#cke_ckeditor').children().children().children()[3].contentWindow.document.childNodes[1].childNodes[1].innerHTML;
$.ajax({
url: '../../action/ac_productbeheer.php?a=add',
type: 'POST',
data: {txtTitle: $('input[name="txtTitle"]').val(), txtForm: $('select[name="txtForm"]').val(), customGalTitle: $('.txtCustomGalleryTitle').val(), gallery_dropdown: gallery, txtParentCategorie: $('select[name="txtParentCategorie"]').val(), txtContent: content, txtMeta: $('.txtMetaDesc').val(), create: true},
success: function(data, textStatus, xhr) {
$('.content_load_icon').html('');
$('.txtContentConsole').html('Product succesvol opgeslagen!').show().delay(2000).fadeOut(200);
busy = 0;
saved = 1;
window.location = '../../modules/productbeheer/index.php';
},
error: function(xhr, textStatus, errorThrown) {
$('.content_load_icon').html('');
$('.txtContentConsole').html('Fout bij opslaan! Probeer het later nog een keer.').show().delay(2000).fadeOut(200);
busy = 0;
}
});
} else {
error = 0;
busy = 0;
}
}
});
HTML:
<a class="btnAddCategorie"><img name="btnOpslaan" src="/'.CMS_ROOT.'/includes/images/layout/opslaan.png" /></a><span class="content_load_icon"></span><span class="txtContentConsole"></span>
Надеюсь, кто-то может помочь мне здесь.
уже много благодарностей.:)
Ответы
Ответ 1
При вставке в таблицу с полем автоматического приращения само поле автоматического приращения вообще не нужно указывать.
Query("INSERT INTO prod_categorie (categorieID, parentID) VALUES (?, ?)", array($chkParent, $txtParentCategorie));
^^^^^^^^^^^ ^ ^^^^^^^^^^
Должно быть просто
Query("INSERT INTO prod_categorie (parentID) VALUES (?)", array($txtParentCategorie));
Просто добавлен в качестве ответа из обсуждения комментариев, чтобы разрешить и завершить вопрос.
Ответ 2
в моем случае ошибка:
SQLSTATE [23000]: Нарушение ограничения целостности: 1062 Дубликат записи '0' для ключа 'PRIMARY'
решение - Пустой/Усечение всех записей соответствующей таблицы
Проблема возникает, когда автоматический прирост отключен на первичном ключе этой таблицы, или тип данных неверен.
частично зачисляется на
https://magento.stackexchange.com/questions/56354/admin-error-sqlstate23000-integrity-constraint-violation-1062-duplicate-ent
Ответ 3
У меня была такая же проблема, и это было не автоматическое приращение, которое вызывало ее. Я изменил тип данных на моем идентификаторе таблицы от TINYINT(3)
до INT(10)
. Попробуй это. Возможно, это поможет.
Ответ 4
Я столкнулся с этой проблемой при использовании Magento 2 с настройкой Google Experiment на Yes. Просто отключив его, я решил проблему с сохранением страницы. У вас все еще проблема с добавлением продуктов каталога, это дает мне ошибку, что URL-адрес ключа для указанного хранилища уже существует. и изображение не загружается, даже если у меня есть правильные разрешения на доступ к папке. Опубликует обновление, если оно поможет кому-либо еще.