MySQL 违反完整性约束:1062 键“PRIMARY”的重复条目“1”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/19359120/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Integrity constraint violation: 1062 Duplicate entry '1' for key 'PRIMARY'
提问by Evert van de Lustgraaf
I have a databse problem where i get Integrity constraint violation: 1062. I tried some things on my own but it didtn work so now i am asking you guys to see if you people can help me out.
我有一个数据库问题,我得到完整性约束违规:1062。我自己尝试了一些东西,但它没有工作,所以现在我请你们看看你们是否可以帮助我。
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));
}
when i run this the first INSERT INTO doesnt fill in any data and giving this error: Integrity constraint violation: 1062 Duplicate entry '1' for key 'PRIMARY' there already is a primary 1 key in there. but it is on auto increment. in the tekst tabel the item_id gets an 0 input.
当我运行它时,第一个 INSERT INTO 没有填写任何数据并给出这个错误:完整性约束违规:1062 Duplicate entry '1' for key 'PRIMARY' there has been a primary 1 key in there. 但它是自动递增的。在 tekst 表中 item_id 获得 0 输入。
Javascript:
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:
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>
Hope someone can help me on here. already alot of thanks in advance. :)
希望有人能在这里帮助我。已经非常感谢提前。:)
回答by asantaballa
When inserting into a table with an auto increment field, the auto increment field itself should not be specified at all.
插入带有自增字段的表时,根本不应指定自增字段本身。
Query("INSERT INTO prod_categorie (categorieID, parentID) VALUES (?, ?)", array($chkParent, $txtParentCategorie));
^^^^^^^^^^^ ^ ^^^^^^^^^^
Should be just
应该只是
Query("INSERT INTO prod_categorie (parentID) VALUES (?)", array($txtParentCategorie));
Just added as answer from comment discussion to allow accept and finishing the question.
刚刚添加为评论讨论的答案,以允许接受并完成问题。
回答by Dung
in my case the error is:
在我的情况下,错误是:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 'PRIMARY'
SQLSTATE [23000]:完整性约束违规:1062 键“PRIMARY”的重复条目“0”
the solution is toEmpty/Truncate all records of the table in question
解决方案是清空/截断相关表的所有记录
The problem happens whenauto-increment is disabled on the primary-key of that table or the data-type is wrong.
当该表的主键上禁用自动增量或数据类型错误时,就会出现问题。
partially credited to https://magento.stackexchange.com/questions/56354/admin-error-sqlstate23000-integrity-constraint-violation-1062-duplicate-ent
回答by Yozaira R.
I had the same problem, and it was not the auto increment that was causing it. I changed the data type on my table ID from TINYINT(3)
to INT(10)
. Try that. Maybe it'll help.
我遇到了同样的问题,并不是自动增量导致了它。我将表 ID 上的数据类型从TINYINT(3)
更改为INT(10)
。试试那个。也许它会有所帮助。
回答by Joshua Berkowitz
I came across this problem when using Magento 2 with the Google Experiment set to Yes. Simply shutting it off solved my page save issue. Bu ti'm still having a problem with adding catalog products it give me an error that the URL Key for the specified store already exists. and the image is not uploading even though i have correct folder permissions. Will post an update in case it helps anyone else.
我在使用 Magento 2 并将 Google Experiment 设置为 Yes 时遇到了这个问题。只需将其关闭即可解决我的页面保存问题。但是,添加目录产品时仍然遇到问题,它给我一个错误,指出指定商店的 URL 密钥已经存在。即使我有正确的文件夹权限,图像也没有上传。将发布更新以防对其他人有帮助。