• 1 رای - 1 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پاک شدن کلید اصلی تمامی جداول یک پایگاه داده
#1
سلام رفقا.
یکی از پروژه هام رو نمیدونم ناخواسته چیکار کردم که تمام Primary Key های جداولش پاک شدن. یعنی فیلد Id در همه ی جداولم هست اما حالت Primary Key نداره و دونه دونه دارم مجددا Primary Key براش تعریف میکنم.
احتمالا نمیتونین حدس بزنین چه اتفاقی افتاده و آیا راهکاری داره که برگردونم یا اینکه همینجوری دونه دونه مجددا تعریف کنم براش.

پروژه با Yii پیاده سازی شده و بانکش هم Mysql هست.Blush
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط :
#2
اوه

اول اینکه همچین چیزایی مربوط میشه به maintenance دیتابیس و نه کدنویسی
دوم اینکه تا اونجایی که یادمه نمی تونی در یک کوئری چندین جدول رو alter کنی

پس میتونی:
با PHP توسط حلقه یا BASh توسط حلقه اسم جداول رو دربیاری و داخل همچین قالبی قرار بدی و echo ش کنی:
کد:
ALTER TABLE `myTable` ADD `myField` INT AUTO_INCREMENT PRIMARY KEY;
بعد اون عبارات echo شده رو داخل برنامه Database Manager ت execute کنی

البته این فقط لیست کلید ندارها رو میاره، شاید مفید باشه:
کد:
select table_name from information_schema.columns where table_name = 'YOUR-DB-NAME' and table_name not in
    (select table_name from information_schema.columns where table_schema = 'YOUR-DB-NAME' /* table schema OF YOUR-DB-NAME database */
        and column_key = 'PRI' /* just primary keys */
        and data_type = 'int' /* just int columns */
        and extra = 'auto_increment' /* just auto-increment value */);



یا همون دستی دونه دونه انجام بدی و درس بگیری که دیگه از اون کارا نکنی Angel
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : ayoubsys
#3
تا جایی که یادمه من کاری نکردم. شاید نزدیک 100تا دیتابیس باشه روی مای اس کیو الم روی سیستم اما همین یه دونه نمیدونم چه مرگش شده بود.Big Grin
قبل از اینکه جواب بدی رفتم دونه دونه primary key تعریف کردم براشون اما یادم رفت Auto Increment کنم فکر کنم همین کوئری تو بهترین کار باشه برام
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط :
#4
migration اینجا به درد میخوره.
البته بعید بدونم برای پروژه ات ساخته باشی Big Grin
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#5
نه نساختم Migration. Big Grin
اولین بار بود به همچین چیزی برخورد میکردم. کد یوشا هم جواب نداد یا حداقل من نتونستم درست اجراش کنم آخرش دستی نشستم درست کردم.Big Grin یه چیزی حدود 50تا تیبل رو.
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان