• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چطوری تراکنش خودکار در جدول ایجاد کنیم؟
#1
سلام
ببینید من میخوام هروقت در یک جدولی درجی صورت گرفت
این داده های درجی در یک جدول خاص دیگه هم بصورت خودکار درج بشه
یعنی من با php کد نزنم بلکه تو خود بانک اینکار بکنم
یادمه sql server میشد
اما my sql نمیدونم چه کار باید کنم...
  پاسخ
تشکر شده توسط :
#2
این چیزی که شما می خواهید، به نظر بنده گزینه مناسبش استفاده از trigger ها در دیتابیس روی جدول مربوطه است.
سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

[عکس: ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
  پاسخ
تشکر شده توسط : aminuse
#3
خب همین تریگرهارو چطور ایجاد کنیم؟؟
روش ایجادش رو میخواستم با یک مثال اگه امکانش هست.

و یک سوال مهم
آیا از تریگر استفاده کنیم بهتره یا اینکه با php تو برنامه مستقیم داده هارو درج کنیم تو جدول ها؟؟؟
از نظر سرعت کدوم بهتره؟
  پاسخ
تشکر شده توسط :
#4
من میخوام هنگام درج در جدول مبدا - مقادیر این جدول بعد از درج - در جدولی دیگر نیز درج بشه.
با تریگرها چطور اینکار کنم؟
  پاسخ
تشکر شده توسط :
#5
تریگر به معنی ماشه در زبان فارسی معنی شده است. و مفهوم آن در دیتابیس براساس همین معنا این است که قبل یا بعد از اینکه شما اعمال insert یا update یا delete را روی یک جدول انجام دادید تعیین کنید عملی مشخص انجام شود که خود دیتابیس انجام آن عمل را تضمین می کند.
حالا با در نظر گرفتن این معنا و از اونجایی که این موضوع درون خود برنامه مدیریت دیتابیس (Mysql) پیاده سازی شده است از اطمینان و سرعت بالاتری نسبت به پیاده سازی در php برخوردار است.

trigger-syntax
create-the-first-trigger-in-mysql
how-to-create-mysql-triggers
سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

[عکس: ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
  پاسخ
تشکر شده توسط : aminuse Y.P.Y
#6
(۱۳۹۴ مرداد ۲۳, ۱۱:۱۶ ب.ظ)shgninc نوشته: تریگر به معنی ماشه در زبان فارسی معنی شده است. و مفهوم آن در دیتابیس براساس همین معنا این است که قبل یا بعد از اینکه شما اعمال insert یا update یا delete را روی یک جدول انجام دادید تعیین کنید عملی مشخص انجام شود که خود دیتابیس انجام آن عمل را تضمین می کند.
حالا با در نظر گرفتن این معنا و از اونجایی که این موضوع درون خود برنامه مدیریت دیتابیس (Mysql) پیاده سازی شده است از اطمینان و سرعت بالاتری نسبت به پیاده سازی در php برخوردار است.

ممنون بابت این بخش از پاسخ به سوالم.
اما فکر کنم ملت سایت میزنن که خودشون تو سایت مستقیم آموزش بدن و مثال بزارن
اینکه من بیام و آدرس سایت بزارم در پاسخ به سوال از نقطه نظر وب مستری کاملن اشتباست مگه اینکه در مورد موضوعی باشه که ربط مستقیمی به سایت خودمون نداشته باشه مثلن من بیام راجع به asp سوال کنم.
اما این سایت قراره منبع php باشه - اما دیدم تو خیلی از پست ها دوستان بجای جواب لینک ارائه میکنن.
اصلن شیوه درستی نیست
با تشکر.
  پاسخ
تشکر شده توسط :
#7
ببینید دوست عزیز در این فروم کسی از کسی طلب ندارد، کسی به کسی پولی نمی دهد و کسی از کسی هم پول نمی گیرد.
اینجا همه دوستان با عشق شون دارن پست می زنن.
حالا برخی از افراد هستند که به خودشون زحمت یک جسجتوی ساده توی گوگل را نمی دهند تا بحت و سرع جوابشون را به دست آورند و مستقیم اینجا سوال می کنند.
این خیلی کم لطفی است که به جوابی هم که داده می شود این طور اعتراض دارید. بهتر این بود که جوابی داده نمی شد. به جای اینکه سطح علمی و فنی خود را ارتقاع دهید، به بقیه اعتراض می کنید که چرا لینک دادند؟؟Angry
این جا افراد وقت اضافه برای تلف کردن ندارند. این جا صرفا یک فروم است نه یک وب لاگ آموزشی.Cool

جالب تر اینه که برخی افراد مبتدی (سؤ تفاهم پیش نیاد) با وقاحت کامل کدهاشون را اینجا میزارن و خیلی متوقعانه انتظار دارند یکی دیگه بدون هیچ چشم داشتی برایشان کل پروژه را انجام دهد.Dodgy

بهتره قبل این که شروع کنید به اعتراض به جواب ها، قوانین انجمن را مطالعه کنید.Idea
سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

[عکس: ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
  پاسخ
تشکر شده توسط : Y.P.Y Alaa
#8
aminuse شما تا حدودی درست میگی، ولی من بیشتر با shgninc موافقم. چون در همه انجمنها فقط راهنمایی می کنن...
همه انجمن ها مثل استادهای چینی می مونن که یک ساعت سوال میپرسی اخرشم با کلی مکث جواب یک کلمه بهت میدن Big Grin

ولی برای اینکه مثالی زده باشم:
کد:
delimiter $

create trigger MyTriggerName
before insert
on TblOrders
begin
    if FldAmount < 0 then
        set FldAmount = 0;
    elseif FldAmount > 100 then
        set FldAmount = 100;
    end if;
end;
$

نکات:
در اینجا MyTriggerName نام تریگر هست، که unique هم هستش. نکته: شما نمی تونی 2 تریگر همنام در یک جدول داشته باشی.
before insert یعنی قبل از هربار insert کردن داده این تریگر باید اجرا بشه. نکته: شما نمی تونی 2 تریگر با یک رویداد یکسان در یک جدول داشته باشی.
on TblOrders یعنی این تریگر مال جدول TblOrders هست.
اگر تریگر به هر دلیلی fail بشه، کل عملیات هم لغو میشه.
و...
وبلاگ: Yousha.Blog.ir


کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بیشتر => نگهداری بهتر
  پاسخ
تشکر شده توسط : shgninc aminuse sara147 Alaa ayoubsys
#9
(۱۳۹۴ مرداد ۲۵, ۱۲:۳۳ ق.ظ)shgninc نوشته: ببینید دوست عزیز در این فروم کسی از کسی طلب ندارد، کسی به کسی پولی نمی دهد و کسی از کسی هم پول نمی گیرد.
اینجا همه دوستان با عشق شون دارن پست می زنن.
حالا برخی از افراد هستند که به خودشون زحمت یک جسجتوی ساده توی گوگل را نمی دهند تا بحت و سرع جوابشون را به دست آورند و مستقیم اینجا سوال می کنند.
این خیلی کم لطفی است که به جوابی هم که داده می شود این طور اعتراض دارید. بهتر این بود که جوابی داده نمی شد. به جای اینکه سطح علمی و فنی خود را ارتقاع دهید، به بقیه اعتراض می کنید که چرا لینک دادند؟؟Angry
این جا افراد وقت اضافه برای تلف کردن ندارند. این جا صرفا یک فروم است نه یک وب لاگ آموزشی.Cool

جالب تر اینه که برخی افراد مبتدی (سؤ تفاهم پیش نیاد) با وقاحت کامل کدهاشون را اینجا میزارن و خیلی متوقعانه انتظار دارند یکی دیگه بدون هیچ چشم داشتی برایشان کل پروژه را انجام دهد.Dodgy

بهتره قبل این که شروع کنید به اعتراض به جواب ها، قوانین انجمن را مطالعه کنید.Idea

اولا کسی از کسی طلب نداره.
دوما کسی هم مجبور به پاسخ دادن سوالات دیگران تو این فروم نیست.
سوما و مهمتر از همه اینکه : بنده فقط نظر دادم گفتم تو سایتهای فروم که راه اندازی میشه اصول کار اینه - من خودم وب مسترم در سایت دیگه -
مثلا اونجا هرکی آدرس کپی پیست کنه سریع پست حذف میکنم.
چون اصلن معنی نداره تو یک فروم آموزش....
ببین مثل این میمونه من ی آموزشگاه بزنم بعد به شاگردام بیام بگم هر سوالی دارید برید از آموزشگاه کناری بپرسید [باز نیایید بگین ما آموزشگاه نیستیم و پول نمیگیریم و این حرفها کلی فروم وجود داره که بی چشم داشت دارن همین کار انجام میدن..] من فقط نظر و پیشنهاد گفتم ..
صلاح خویش خسروان دانند.
  پاسخ
تشکر شده توسط :
#10
(۱۳۹۴ مرداد ۲۵, ۱۰:۳۴ ق.ظ)aminuse نوشته:
(۱۳۹۴ مرداد ۲۵, ۱۲:۳۳ ق.ظ)shgninc نوشته: ببینید دوست عزیز در این فروم کسی از کسی طلب ندارد، کسی به کسی پولی نمی دهد و کسی از کسی هم پول نمی گیرد.
اینجا همه دوستان با عشق شون دارن پست می زنن.
حالا برخی از افراد هستند که به خودشون زحمت یک جسجتوی ساده توی گوگل را نمی دهند تا بحت و سرع جوابشون را به دست آورند و مستقیم اینجا سوال می کنند.
این خیلی کم لطفی است که به جوابی هم که داده می شود این طور اعتراض دارید. بهتر این بود که جوابی داده نمی شد. به جای اینکه سطح علمی و فنی خود را ارتقاع دهید، به بقیه اعتراض می کنید که چرا لینک دادند؟؟Angry
این جا افراد وقت اضافه برای تلف کردن ندارند. این جا صرفا یک فروم است نه یک وب لاگ آموزشی.Cool

جالب تر اینه که برخی افراد مبتدی (سؤ تفاهم پیش نیاد) با وقاحت کامل کدهاشون را اینجا میزارن و خیلی متوقعانه انتظار دارند یکی دیگه بدون هیچ چشم داشتی برایشان کل پروژه را انجام دهد.Dodgy

بهتره قبل این که شروع کنید به اعتراض به جواب ها، قوانین انجمن را مطالعه کنید.Idea

اولا کسی از کسی طلب نداره.
دوما کسی هم مجبور به پاسخ دادن سوالات دیگران تو این فروم نیست.
سوما و مهمتر از همه اینکه : بنده فقط نظر دادم گفتم تو سایتهای فروم که راه اندازی میشه اصول کار اینه - من خودم وب مسترم در سایت دیگه -
مثلا اونجا هرکی آدرس کپی پیست کنه سریع پست حذف میکنم.
چون اصلن معنی نداره تو یک فروم آموزش....
ببین مثل این میمونه من ی آموزشگاه بزنم بعد به شاگردام بیام بگم هر سوالی دارید برید از آموزشگاه کناری بپرسید [باز نیایید بگین ما آموزشگاه نیستیم و پول نمیگیریم و این حرفها کلی فروم وجود داره که بی چشم داشت دارن همین کار انجام میدن..] من فقط نظر و پیشنهاد گفتم ..
صلاح خویش خسروان دانند.
خود وب یه آموزشگاه بزرگ هست. ما اینجا قصد جذب کردن و بالا بردن آمار بازدید و ... رو نداریم. وقتی ببینیم یه جای دیگه آموزش کاملش رو گذاشته به همون لینک اشاره می کنیم لزومی نمی بینیم یه چیز رو تکرار کنیم. قصد ما فقط کمک کردن هست. حالا اینکه یه لینک از یه جای دیگه می تونه کمک کنه چه بهتر لینک اونجا رو بزاریم. اتفاقا در دید وب مستری درستش هم همینه که وقتی یکی دیگه یه مطلبی رو گذاشته وقتت رو برای چیز تکراری نذاری.
  پاسخ
تشکر شده توسط : sara147 shgninc Alaa nimaee


پرش به انجمن:


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