/
  • اجرای یک ترانزاکشن

  • صفحه‌ها (2):
  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی اجرای یک ترانزاکشن
    نویسنده پیام
    Alimokhlesi آفلاین
    مدیر کل
    **********

    ارسال‌ها: 457
    تاریخ عضویت: ۱۳۸۷ آذر ۲۵
    اعتبار: 13
    تشکرها : 601
    ( 1126 تشکر در 412 ارسال )
    ارسال: #1
    اجرای یک ترانزاکشن
    دیروز دربه در دنبال اجرای یک ترانزاکشن روی مای اس کیو ال بودم.
    من اینکارو با سی شارپ و اس کیوال سرور با راها و بارها انجام داده بودم ولی تو مای اسکیوال نه.
    خیلی گشتم ولی به نتیجه درستی نرسیدم. مجبور شدم از دشتورات اس کیو ال استفاده کنم. حاص کارم این شد:
    صورت سئوال :
    دوتا جدول داریم که کلید اصلی اولی FirstId تو جدول دومی به عنوان کلید خارجی استفاده میشه.
    از بد روزگار FirstId عدد و به صورته شمارنده ای بالا میره. من می خوام اول یه رکورد تو جدول اول درج کنم بعد یه رکورد هم تو جدول دوم بزارم. منتها دو جدول دوم اخرین ای دی از جدول اول هم به عنوان کلید خارجی باید ثبت شه. اگه جدول دوم نتونه اطلاعاتشو به هر دلیلی ثبت کنه باید اطلاعات جدول اول هم حذف شه.
    برای شروع یه ترانزاکشن از دستور زیر استفاده میکنیم :
    کد PHP:
    START TRANSACTION
    بعد دستور درج در جدول اول رو می نویسیسم:
    کد PHP:
    insert itno tblFirst (FirstId,Name)values ('ali',''); 
    حالا میخواهیم توی ترانزاکشنمون مقدار اخرین آی دی درج شده رو بگیریم تا توی درج بعدی بتونیم ازش استفاده کنیم
    کد PHP:
    SET @A=1;
    select @A:=last_insert_id() from tblFirst 
    ای دی به دست اومده تو متغییر @A که تو اس کیوال تعریف شده ریخته میشه
    حالا میریم سراغ درج دوم
    کد PHP:
    insert into tblSecond (FirstId,SecId)Values(@A,''); 

    برای اجرای ترانزاکشن هم :
    کد PHP:
    commit
    البته این کدا هنوز ناقصه
    __________________________________________________________________________
    علم تاج افتخار دنیا و یادگار پس از مرگ است
    ۱۳۸۸ آذر ۴ ۱۱:۵۶ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    admin آفلاین
    وحید سهرابلو
    **********

    ارسال‌ها: 5,734
    تاریخ عضویت: ۱۳۸۷ آذر ۲۴
    اعتبار: 100
    تشکرها : 1362
    ( 6196 تشکر در 3438 ارسال )
    ارسال: #2
    RE: اجرای یک ترانزاکشن
    یعنی این کد کار می کنه؟
    این توضیحات رو توی mysql بخونید
    http://dev.mysql.com/doc/refman/5.0/en/i...-insert-id
    ۱۳۸۸ آذر ۴ ۱۲:۳۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    Alimokhlesi آفلاین
    مدیر کل
    **********

    ارسال‌ها: 457
    تاریخ عضویت: ۱۳۸۷ آذر ۲۵
    اعتبار: 13
    تشکرها : 601
    ( 1126 تشکر در 412 ارسال )
    ارسال: #3
    RE: اجرای یک ترانزاکشن
    کجاش اشکال داره
    __________________________________________________________________________
    علم تاج افتخار دنیا و یادگار پس از مرگ است
    ۱۳۸۸ آذر ۴ ۱۲:۳۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    admin آفلاین
    وحید سهرابلو
    **********

    ارسال‌ها: 5,734
    تاریخ عضویت: ۱۳۸۷ آذر ۲۴
    اعتبار: 100
    تشکرها : 1362
    ( 6196 تشکر در 3438 ارسال )
    ارسال: #4
    RE: اجرای یک ترانزاکشن
    هیچ جا
    last_insert_id() from tblFirst
    واسم‌جالب‌بود
    من فقط last_insert_id() رو تنها دیده بودم
    ۱۳۸۸ آذر ۴ ۰۱:۰۹ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    Alimokhlesi آفلاین
    مدیر کل
    **********

    ارسال‌ها: 457
    تاریخ عضویت: ۱۳۸۷ آذر ۲۵
    اعتبار: 13
    تشکرها : 601
    ( 1126 تشکر در 412 ارسال )
    ارسال: #5
    RE: اجرای یک ترانزاکشن
    من تست کردم جواب داد
    __________________________________________________________________________
    علم تاج افتخار دنیا و یادگار پس از مرگ است
    ۱۳۸۸ آذر ۴ ۰۱:۲۷ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : admin
    zoghal آفلاین
    صالح سوزنچی
    *****

    ارسال‌ها: 1,760
    تاریخ عضویت: ۱۳۸۷ دي ۲۵
    اعتبار: 23
    تشکرها : 1500
    ( 1729 تشکر در 992 ارسال )
    ارسال: #6
    RE: اجرای یک ترانزاکشن
    یک سوال شما ترانزکشن رو وری موتور myisam استفاده کردید یا موتور دیگه؟
    ۱۳۸۸ آذر ۴ ۰۶:۰۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    scorpion آفلاین
    رضا حقیقی
    ***

    ارسال‌ها: 245
    تاریخ عضویت: ۱۳۸۷ بهمن ۲۷
    اعتبار: 3
    تشکرها : 94
    ( 276 تشکر در 144 ارسال )
    ارسال: #7
    RE: اجرای یک ترانزاکشن
    (۱۳۸۸ آذر ۴ ۰۶:۰۸ عصر)zoghal نوشته شده توسط:  یک سوال شما ترانزکشن رو وری موتور myisam استفاده کردید یا موتور دیگه؟

    myisam از تراکنش پشتیبانی نمیکنه
    __________________________________________________________________________
    رضا حقیقی / Reza Haghighi
    ۱۳۸۸ آذر ۴ ۰۷:۱۹ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    ahora آفلاین
    کسی که از شکست نا امید نمیشه
    ****

    ارسال‌ها: 386
    تاریخ عضویت: ۱۳۸۷ دي ۹
    اعتبار: 4
    تشکرها : 130
    ( 54 تشکر در 41 ارسال )
    ارسال: #8
    RE: اجرای یک ترانزاکشن
    ببخشید میپرم وسط بحثتون

    من یکم سوادم کمه و کنجکاو
    این ترانزاکشن اولین باره اسمش رو میشونم چی هست؟ کار چیه؟ چه کاربردی داره و کجاها استفاده میشه؟
    __________________________________________________________________________
    با تشکر ممل آمریکایی
    ۱۳۸۸ آذر ۴ ۰۹:۱۱ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    zoghal آفلاین
    صالح سوزنچی
    *****

    ارسال‌ها: 1,760
    تاریخ عضویت: ۱۳۸۷ دي ۲۵
    اعتبار: 23
    تشکرها : 1500
    ( 1729 تشکر در 992 ارسال )
    ارسال: #9
    RE: اجرای یک ترانزاکشن
    (۱۳۸۸ آذر ۴ ۰۷:۱۹ عصر)scorpion نوشته شده توسط:  
    (۱۳۸۸ آذر ۴ ۰۶:۰۸ عصر)zoghal نوشته شده توسط:  یک سوال شما ترانزکشن رو وری موتور myisam استفاده کردید یا موتور دیگه؟

    myisam از تراکنش پشتیبانی نمیکنه

    رضا جان منم از همین موضوع تعجب کردم. گفتم شاید. جدیدا ساپورت میکنه.
    پس رو چه موتوری کار میکنید مهندس مخلصی؟
    ۱۳۸۸ آذر ۵ ۱۲:۰۲ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    Alimokhlesi آفلاین
    مدیر کل
    **********

    ارسال‌ها: 457
    تاریخ عضویت: ۱۳۸۷ آذر ۲۵
    اعتبار: 13
    تشکرها : 601
    ( 1126 تشکر در 412 ارسال )
    ارسال: #10
    RE: اجرای یک ترانزاکشن
    البته من یه نکته رو بگم که دارم هنوز روی این ترانزاکشن کار میکنم
    مسئله Rollback هنوز تو این سیستم انجام نشده.
    من اگه مطمئن شم میتونم با try /catch رول بک کنم می کم که میشه
    ولی هنوز هیچی قطعی نیست. یعنی ممکنه من تا حالا اشتباه کرده باشم. به من فرصت بدید لطفا Smile
    __________________________________________________________________________
    علم تاج افتخار دنیا و یادگار پس از مرگ است
    ۱۳۸۸ آذر ۵ ۱۲:۰۶ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

  • صفحه‌ها (2):
  • ارسال پاسخ
    پرش به انجمن:


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