Contrainte d'intégrité violation: 1062 Duplicate entry '1' for key 'PRIMARY'
J'ai un databse problème où je reçois une contrainte d'Intégrité violation: 1062.
J'ai essayé quelques choses sur mon propre mais il didtn travail alors maintenant, je demande à vous les gars pour voir si vous pouvez m'aider.
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));
}
lorsque je l'exécute de la première INSERTION DANS ne pas remplir toutes les données et donne cette erreur:
Contrainte d'intégrité violation: 1062 Duplicate entry '1' for key 'PRIMARY'
il y a déjà une primaire 1 clé dedans. mais c'est sur l'auto incrément.
dans le tekst tabel la item_id obtient un 0 entrée.
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>
Espère que quelqu'un pourra m'aider ici.
déjà beaucoup de remerciements à l'avance. 🙂
- Nous ne pouvons pas vous aider, sauf si vous nous montrer l'instruction de création de la table en question.
- Vous disposez de trois inserts. Pouvez-vous dire que l'on est en train d'échouer?
- Êtes-vous essayer d'insérer une valeur dans votre clé primaire? Si on ne le fait pas (dans le tekst tabel la item_id obtient un 0 entrée.) -> Également poster votre définition de la table
- J'ai créé la table manuellement. les informations que je peux donner est: categorieID est un AUTO_INCREMENT et partenerID est la clé primaire
- L'insert qui est de l'échec, est: Query("INSERT INTO prod_categorie (categorieID, parentID) VALUES (?, ?)", array($chkParent, $txtParentCategorie));
- Exécutez les commandes suivantes:
SHOW CREATE TABLE prod_categorie;
etSHOW CREATE TABLE tekst;
, à l'aide de PHPMyAdmin, ou tout autre outil que vous utiliser, de copier et de modifier une question avec les informations que vous avez copié. De cette façon, nous serons en mesure de voir ce qu'il se passe. - Vous ne devriez pas être l'insertion d'une valeur dans votre champ incrémentation automatique. Plus précisément, vous ne devriez pas être l'insertion d'une valeur dans categorieID dans prod_categorie si c'est un auto-incrément
- Ok. Alors si categorieID est l'auto-incrémentation, alors je pense ne devrait pas être dans votre instruction insert à tous. Le système va créer pour vous, même si ce n'est dans l'instruction insert.
- Le tableau de retour de plus de 1 ligne? Dans un bulk insert qui doivent être séparés par des VALEURS(","),(","), ou de la clé primaire ne sera pas en mesure d'augmenter les valeurs.
- et AgRizzo Grâce qu'il a fait. vraiment ne peux pas obtenir à elle, pourquoi je n'ai pas la voir moi-même. Merci beaucoup je pense que je ne l'ai trouvé sans vous aide 🙂
- vous mettez dans le vôtre avant le mien. Envisager d'ajouter que répondre si Evert peut accepter? Et Evert assurez-vous de l'accepter une fois il le fait en question montre aussi complet.
Vous devez vous connecter pour publier un commentaire.
Lors de l'insertion dans une table avec un incrément automatique de champ, l'auto incrément de domaine lui-même ne doit pas être spécifié à tous.
Doit être juste
Venez d'ajouter à la réponse de commentaire la discussion pour permettre à l'accepter et à la finition de la question.
dans mon cas, l'erreur est:
la solution est de Vide/Truncate tous les enregistrements de la table en question
Le problème se produit lorsque incrémentation automatique est désactivée sur la clé primaire de la table ou le type de données est incorrect.
partiellement attribuée à
https://magento.stackexchange.com/questions/56354/admin-error-sqlstate23000-integrity-constraint-violation-1062-duplicate-ent
J'ai eu le même problème, et il n'était pas l'incrément automatique qui a été la cause. J'ai changé le type de données sur ma table ID de
TINYINT(3)
àINT(10)
. Essayez que. Peut-être que ça vous aidera.auto_increment
ensemble et je n'étais pas la spécification de la clé primaire, mais j'étais encore en train de l'erreur. Vu mon type de champ a été mis àtinyint
au lieu deint
. Cette réponse m'a aidé, merci!Je suis tombé sur ce problème lors de l'utilisation de Magento 2 avec le Google Expérience définie sur Oui. Simplement fermer hors résolu mon page enregistrer la question. Bu ti suis toujours avoir un problème avec l'ajout du catalogue de produits, il me donne une erreur que l'URL de la Clé pour le magasin spécifié existe déjà. et l'image n'est pas le téléchargement, même si j'ai corriger les autorisations de dossier. Publierons une mise à jour dans le cas où il aide à quelqu'un d'autre.
catalog_product_entity_int
table avait atteint la plus grande valeur de laint
type et donc de faire de drôles de choses quand j'ai essayé de créer un nouveau produit simple. Je comprends ce que je suis en train de travailler sur estMagento 1
mais le principe est le même, peut-être que le problème est sous-jacente d'un type de données de contrainte.