/
  • عدم TRUNCATE شدن جدول

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی عدم TRUNCATE شدن جدول
    نویسنده پیام
    moh3nmir آفلاین
    محسن . م
    ***

    ارسال‌ها: 102
    تاریخ عضویت: ۱۳۹۱ تير ۲۶
    اعتبار: 0
    تشکرها : 127
    ( 11 تشکر در 9 ارسال )
    ارسال: #1
    Exclamation عدم TRUNCATE شدن جدول
    با سلام و درود
    یه مشکلی بهش برخوردم که خیلی از کارهام رو مختل کرده از دوستان خواهش دارم راهنماییم کنند

    یه جدولی رو دارم که اسامی افراد ( people ) را داخلش ثبت کردم و یه جدول دارم که در اون پرسش و پاسخ های کاربران ( faq ) ذخیره میشه
    با استفاده از "Relation view" در جدول "faq" مشخص کردم که "Question_Id_People" با فیلد "Id" جدول "people" خاصیت "on Delete" اون "restrict" و خاصیت "on Update" اون روی "cascade" تنظیم کردم
    حالا وقتی عمل "TRUNCATE" رو روی "faq" انجام میدم مشکلی پیش نمیاد ولی بعدش ولی "people" رو "TRUNCATE" میکنم پیام خطای زیر رو میده
    در حالی که من اول جدول "faq" رو خالی میکنم بعد جدول "people" رو
    کد PHP:
    if(isset($_POST['trunc'])) {
       
    mysql_query("TRUNCATE `faq`");
       
    mysql_query("TRUNCATE `people`");

    کد:
    #1701 - Cannot truncate a table referenced in a foreign key constraint (`db-company`.`faq`, CONSTRAINT `faq_ibfk_3` FOREIGN KEY (`Question_Id_People`) REFERENCES `db-company`.`people` (`Id`))
    (آخرین ویرایش در این ارسال: ۱۳۹۱ آبان ۱۸ ۰۱:۴۳ عصر، توسط moh3nmir.)
    ۱۳۹۱ آبان ۱۷ ۱۲:۵۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    kazzem1464 آفلاین
    عضو
    ***

    ارسال‌ها: 54
    تاریخ عضویت: ۱۳۹۱ مهر ۱۰
    اعتبار: 0
    تشکرها : 18
    ( 20 تشکر در 13 ارسال )
    ارسال: #2
    RE: عدم TRUNCATE شدن جدول
    احتمالا foreign key رو اشتباه تنظیم کردی یعنی مقادیر جدول `people` به جدول `faq` محدود کردی
    برای تست
    mysql_query("TRUNCATE `faq`");
    mysql_query("TRUNCATE `people`");
    جابه جا کن ببین درست میشه
    اگه درست شده foreign key درست کن
    __________________________________________________________________________
    من برای متنفر بودن از کسانی که از من متنفرند فرصتی ندارم زیرا تمام وقت من صرف دوست داشتن کسانی می شود که مرا دوست دارند
    ۱۳۹۱ آبان ۱۷ ۰۱:۳۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    moh3nmir آفلاین
    محسن . م
    ***

    ارسال‌ها: 102
    تاریخ عضویت: ۱۳۹۱ تير ۲۶
    اعتبار: 0
    تشکرها : 127
    ( 11 تشکر در 9 ارسال )
    ارسال: #3
    RE: عدم TRUNCATE شدن جدول
    (۱۳۹۱ آبان ۱۷ ۰۱:۳۵ عصر)kazzem1464 نوشته شده توسط:  احتمالا foreign key رو اشتباه تنظیم کردی یعنی مقادیر جدول `people` به جدول `faq` محدود کردی

    با سلام مجدد
    متوجه نشدم منظورتون رو
    ببینید غیر از جدول faq چندین جدول دیگه هم هستن که از id جدول people استفاده میکنند .
    من میخوام در صورتی که از روی id کاربر زیرشاخه هایی یا اطلاعاتی بر اساس اون ثبت شده اجازه نده کاربر براحتی حذف بشه اول زیرشاخه هاش حذف بشن بعد اونو حذف کنه و این کار رو بخوبی انجام میده و حذف نمیکنه یعنی اگه تکی اقدام به حذف کنم اگه زیر شاخه نداشته باشه براحتی حذف میکنه ولی اگه TRUNCATE کنم و بخوام جدول رو ریست کنم پیام بالا رو میده
    ۱۳۹۱ آبان ۱۷ ۰۱:۵۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    kazzem1464 آفلاین
    عضو
    ***

    ارسال‌ها: 54
    تاریخ عضویت: ۱۳۹۱ مهر ۱۰
    اعتبار: 0
    تشکرها : 18
    ( 20 تشکر در 13 ارسال )
    ارسال: #4
    RE: عدم TRUNCATE شدن جدول
    برای امتحان که شده برو تو دیتا بیس FOREIGN KEY v( relation)دو تا جدول رو بردار ببین چی می شه
    یا
    کد PHP:
    if(isset($_POST['tranck'])) {

       
    mysql_query("TRUNCATE `people`");
       
    mysql_query("TRUNCATE `faq`");

     
    به این شکل تغییر بده ببین چی میشه 
    __________________________________________________________________________
    من برای متنفر بودن از کسانی که از من متنفرند فرصتی ندارم زیرا تمام وقت من صرف دوست داشتن کسانی می شود که مرا دوست دارند
    (آخرین ویرایش در این ارسال: ۱۳۹۱ آبان ۱۷ ۰۲:۰۷ عصر، توسط kazzem1464.)
    ۱۳۹۱ آبان ۱۷ ۰۲:۰۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    moh3nmir آفلاین
    محسن . م
    ***

    ارسال‌ها: 102
    تاریخ عضویت: ۱۳۹۱ تير ۲۶
    اعتبار: 0
    تشکرها : 127
    ( 11 تشکر در 9 ارسال )
    ارسال: #5
    RE: عدم TRUNCATE شدن جدول
    با سلام مجدد
    اگه fk رو بردارم که براحتی پاک میکنه ولی همینجور که تو ارسال #3 گفتم نمیخوام اینجوری حذف بشه من حتی بصورت دستی هم که تو دیتابیس truncate میکنم پیام بالا رو میده
    تا حالا به این نتیجه رسیدم جدولی که جداول دیگه به او وصلن truncate نمیشن ( البته درصورتی که زیر شاخه نداشته باشه ) و این مشکل بزرگی رو برام ایجاد کرده دوستان راه حلی برا من ندارن تا رفعش کنم Huh
    (آخرین ویرایش در این ارسال: ۱۳۹۱ آبان ۱۷ ۰۲:۲۸ عصر، توسط moh3nmir.)
    ۱۳۹۱ آبان ۱۷ ۰۲:۱۶ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    kazzem1464 آفلاین
    عضو
    ***

    ارسال‌ها: 54
    تاریخ عضویت: ۱۳۹۱ مهر ۱۰
    اعتبار: 0
    تشکرها : 18
    ( 20 تشکر در 13 ارسال )
    ارسال: #6
    RE: عدم TRUNCATE شدن جدول
    (۱۳۹۱ آبان ۱۷ ۰۲:۱۶ عصر)moh3nmir نوشته شده توسط:  تا حالا به این نتیجه رسیدم جدولی که جداول دیگه به او وصلن truncate نمیشن ( البته درصورتی که زیر شاخه نداشته باشه ) و این مشکل بزرگی رو برام ایجاد کرده دوستان راه حلی برا من ندارن تا رفعش کنم Huh

    restrictبه cascade تبدیل کن
    __________________________________________________________________________
    من برای متنفر بودن از کسانی که از من متنفرند فرصتی ندارم زیرا تمام وقت من صرف دوست داشتن کسانی می شود که مرا دوست دارند
    ۱۳۹۱ آبان ۱۷ ۰۲:۳۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    moh3nmir آفلاین
    محسن . م
    ***

    ارسال‌ها: 102
    تاریخ عضویت: ۱۳۹۱ تير ۲۶
    اعتبار: 0
    تشکرها : 127
    ( 11 تشکر در 9 ارسال )
    ارسال: #7
    RE: عدم TRUNCATE شدن جدول
    سلام مجدد
    یکی منو راهنمایی کنه لطفا توی یه مشکل اساسی افتادم این راهی که رفتم اشتباهه یا من بد متوجه شدم؟
    ۱۳۹۱ آبان ۱۸ ۰۹:۱۷ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    kazzem1464 آفلاین
    عضو
    ***

    ارسال‌ها: 54
    تاریخ عضویت: ۱۳۹۱ مهر ۱۰
    اعتبار: 0
    تشکرها : 18
    ( 20 تشکر در 13 ارسال )
    ارسال: #8
    RE: عدم TRUNCATE شدن جدول
    یک راه غیر اصولی به نظر من رسید اگه دیدی خوبه استفاده کن
    وقتی می خوایTRUNCATE کنی قبل از اون با کد PHP fk رو بردار وقتی کارت انجام شد دوباره fk رو با عکس اون کد set کن
    2 تا کوئری داخل if اضافه میشه
    ALTER TABLE yourtablename DISABLE KEYS;
    SET FOREIGN_KEY_CHECKS=0;
    ... do your processing ...
    SET FOREIGN_KEY_CHECKS=1;
    ALTER TABLE yourtablename ENABLE KEYS;
    --------------------------------------------------------------------------------------------------------------------------
    این هم راه اصولی
    http://bytes.com/topic/mysql/answers/721...-relations

    http://dev.mysql.com/doc/refman/5.0/en/i...aints.html
    __________________________________________________________________________
    من برای متنفر بودن از کسانی که از من متنفرند فرصتی ندارم زیرا تمام وقت من صرف دوست داشتن کسانی می شود که مرا دوست دارند
    (آخرین ویرایش در این ارسال: ۱۳۹۱ آبان ۱۸ ۱۰:۴۶ صبح، توسط kazzem1464.)
    ۱۳۹۱ آبان ۱۸ ۱۰:۲۸ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : moh3nmir
    moh3nmir آفلاین
    محسن . م
    ***

    ارسال‌ها: 102
    تاریخ عضویت: ۱۳۹۱ تير ۲۶
    اعتبار: 0
    تشکرها : 127
    ( 11 تشکر در 9 ارسال )
    ارسال: #9
    RE: عدم TRUNCATE شدن جدول
    با سلام مجدد
    راحل هایی که گفتین تو خود phpmyadmin توی sql که میزنم جواب میده ولی تو برنامه جواب نمیده
    میشه کاری کرد که با کد هم تو برنامه جواب بده ؟
    ۱۳۹۱ آبان ۲۱ ۱۰:۳۴ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS