خطای تکرار یا داپلیکیت و یا Duplicate شدن اطلاعات از سوی دیتابیس یکی از خطاهای رایج در زمان کار با یک سیستم به شمار میرود. این ارور که عموما در زمان نصب افزونه یا قالب جدید و یا ایمپورت یک سری اطلاعات خاص ما در یک جدول خاص اتفاق می افتد. ساختار کلی خطا:
1 |
Duplicate entry '0' for key 'PRIMARY' |
شکل های مختلف خطا:
1 |
۱۰۶۴ You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 |
1 |
۱۰۶۲ Duplicate entry '28' for key 'PRIMARY |
علت های وقوع خطا:
دلایل بروز این خطا به عناوین مختلفی میتواند رخ دهد برای مطالعه دلایل کلی این خطا میتوانید پستی که درباره خطاهای مشابه این خطا ایجاد شده مطالعه نمایید.
رفع مشکل خطای #۱۰۶۲ – Duplicate entry ‘۱’ for key ‘PRIMARY در جوملا
علت اصلی بروز این خطا در این حالت به خاطر عدم پشتیبانی صحیح از ویژگی Auto Incerement روی یک فیلد در یک یا تعداد بیشتری از جداول دیتابیس است. این ویژگی یک قابلیت بخصوص به فیلد موردنظر ما اضافی میکند و موجب میشود که فیلد به صورت ترتیبی یک شماره بیاندازد و به صورت یک شمارنده خودکار عمل کند.
[quote]پیشنهاد ویژه: سامانه نوبت دهی اینترنتی پزشکان و مراکز درمانی[/quote]
راه حل :
خب کار شروع میکنیم ابتدا از سایت یا پایگاه داده خود یک بکاپ تهیه میکنیم.
[quote]قبل از انجام هر تغییر و اصلاحی ؛ لطفاً از سایت و دیتابیس خود یک نسخه بکاپ تهیه کنید.[/quote]
گام اول: برای حل این موضوع یک راهکار بسیار ساده پیشنهاد میشود. برای شروع نام جدولی که خطای از عملکرد آن بخش ناشی میشود را مشخص میکنیم.
گام دوم:
از طریق محیط phpmyadmin تب SQL را باز میکنیم. در این بخش میبایست کد زیر را در جدول یا جداول مورد هدف تزریق کنیم. کد زیر را کپی کنید . با تغییر پیشوند و نام تیبل خودتان آنرا در کادر SQL کپی و بروی دکمه Go کلیک کنید.
1 2 |
ALTER TABLE `#__users` MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT; |
باید توجه داشته باشید. که عبارت #__users نام کامل جدول دیتابیس شماست. و عبارت id نام فیلد مورد هدف ماست. به طور مثال میتواند به صورت زیر پر شود.
1 2 |
ALTER TABLE `afzonehaprefix_usercommnet` MODIFY `SubmissionId` int(11) UNSIGNED NOT NULL AUTO_INCREMENT; |
[quote]پیشنهاد ویژه: سایت آماده تهیه غذای خانگی خونه پز[/quote]
تبریک میگوییم این خطا هم بطور کامل مرتفع گردید.
امیدواریم که این آموزش برای شما مفید بوده باشد.
در صورت وجود هرگونه سوال میتوانید مسائل خود را بعنوان کامنت در همین پست ارسال نمایید.
یک راه دیگر برای حل این مشکل در این صفحه انگلیسی آماده است،
https://www.joomla-monster.com/blog/joomla-templates/solution-for-1602-duplicate-sql-entry-error-while-updating-to-joomla-3-6
به طور خلاصه میگویم، از آنجا که نوشته 2. Download archivefix script(2 KB). یک اسکریپت کوچک است دانلود کنید و در جایی که جوملا را نصب کرده اید کپی و اجرایش کنید. بعد از اجرای اسکریپت باید تمام پلاگین هایی که به رنگ سبز هستند را دکمه move را بزنید تا قرمز شوند. این کار را ادامه دهید تا همه جداول قرمز شوند. دقت کنید به هیچ وجه برای جداول که جزو پلاگین های هسته جوملا هستند دکمه move را نزنید که باعث کرش جوملا میشه. بعد از این کار مشکل شما حل میشود. بعد از اتمام کار اسکریپت را از هاست خود پاک کنید.