اذهب إلى المحتوى
  • 0

ظهور رسالة خطأ SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'posts' already exists" عند محاولة إنشاء جدول جديد في قاعدة البيانات

Hussein Kourani

السؤال


  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'posts' already exists (Connection: mysql, SQL: create table `posts` (`id` bigint unsigned not null auto_increment primary key, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci') 

this error appears when I try to  migrate database from add_published_and_likes.php

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يعني هذا الخطأ أن الجدول الذي تحاول إنشاؤه بإسم 'posts' موجود مسبقاً في قاعدة البيانات الخاصة بك ولا يمكن إنشاءه مرة أخرى.

لحل هذه المشكلة ، يمكنك إتباع الخطوات التالية:
1. تحديد ما إذا كان الجدول 'posts' موجود بالفعل في قاعدة البيانات الخاصة بك بفتح الـ MySQL client وعرض الجداول باستخدام الأمر `show tables;` 
2. إذا كان الجدول موجود فعلاً ، فيمكنك حذفه باستخدام الأمر `drop table posts;`
3. بعد حذف الجدول، يمكنك تشغيل الأمر الأول مرة أخرى `php artisan migrate` و الذي يجب أن يقوم بإنشاء جدول 'posts' الخاص بك بنجاح.

بعد إتمام هذه الخطوات، يجب أن يتم إنشاء الجدول بنجاح دون وجود أي أخطاء.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

الجدول الذي تحاول إنشاؤه بالفعل موجود في قاعدة البيانات، والسبب الأكثر شيوعًا لحدوث هذا الخطأ هو أنك تحاول إنشاء جدول يحمل نفس الاسم الذي تم استخدامه بالفعل لجدول آخر.

هناك بعض الحلول التي يمكنك محاولتها لحل المشكلة:

1- تأكد من أن الجدول الذي تحاول إنشاؤه ليس بالفعل موجودًا في قاعدة البيانات، من خلال فحص ذلك بإجراء استعلام لعرض الجداول الموجودة في قاعدة البيانات، والتأكد من عدم وجود جدول يحمل نفس الاسم.

2- إذا كنت متأكدًا من أن الجدول الحالي غير مهم ويمكن حذفه، فتستطيع تغيير اسم الجدول الذي تحاول إنشاؤه، من خلال بتغيير اسم الجدول في الاستعلام الذي تستخدمه في عملية الإنشاء.

3- بدلاً من محاولة إنشاء الجدول من الصفر، هناك ميزة التحديث (migration) في نظام إدارة قاعدة البيانات الخاص بك، وتلك الميزة تسمح بإجراء تعديلات على البنية الحالية لقاعدة البيانات دون الحاجة إلى حذف الجداول الحالية، وتستطيع إنشاء تكوين جديد للجدول الذي تحاول إنشاؤه كجزء من ملف التحديث، وسيقوم النظام بتنفيذ التغييرات اللازمة للبنية.

وفي حالة كنت تعمل على مشروع بإطار لارافيل فقم بتنفيذ الأمر التالي لإعادة إنشاء قاعدة البيانات وتشغيل عملية التهجير (migration) وإدخال بيانات افتراضية (seeding) في قواعد البيانات:

php artisan migrate:fresh --seed

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

كما في التعليقات السابقة فإن المشكلة  أن الجدول الذي تحاول إنشاؤه بإسم 'posts' موجود مسبقاً لذلك لحل المشكلة 

  • في نافذة الأوامر قم بتنفيذ php artisan tinker
  • ثم Schema::drop('posts')
  • في النهاية php artisan migrate يجب أن يعمل

يمكنك أيضاً تخطي ترحيل الجدول إذا كان الجدول موجودًا في قاعدة البيانات عن طريق إضافة هذا الرمز:

if(Schema::hasTable('posts')) return;

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...