PDA

View Full Version : سوال: چجوری میشه برای یک جدول در دیتابیس تعیین کرد که حداکثر 50 رکورد ثبت بشه



mtn677
شنبه 15 شهریور 1393, 15:26 عصر
سلام من میخوام یک جدول در دیتابیس رو طوری تنظیم کنم که اگه تعداد رکوردها به 50 تا رسید با اضافه شدن رکورد جدید اولین رکورد حذف بشه.چجوری میشه؟؟؟

مهرداد سیف زاده
شنبه 15 شهریور 1393, 16:46 عصر
شما میتونید برای این کار از store procedure و trigger استفاده کنید.
یک store procedure میتونید برای گرفتن تعداد رکوردها و بعد اگر از 50تا بیشتر بود رکورد اول رو پاک میکنه. و trigger هم که با هر بار insert شدن فراخونی میشه و store procedure زو اجرا میکنه
یه چیزی شبیه لینک زیر
http://dba.stackexchange.com/questions/10657/call-a-stored-procedure-from-a-trigger

mtn677
شنبه 15 شهریور 1393, 16:58 عصر
خیلی سخته.هیچی ازش نمیفهمم.:متفکر:

mtn677
شنبه 15 شهریور 1393, 17:06 عصر
اگه بشه مقدار کمترین ID رو بدست بیارم و رکورد مربوط به اون ID رو حذف کنم خیلی خوب میشه ولی نمیدونم امکانش هست یا نه؟

Veteran
شنبه 15 شهریور 1393, 17:19 عصر
روشی که اقا مهرداد گفتن دیگه نیازی نداره شما سمت PHP کاری انجام بدید و در سمت دیتابیس به صورت اتومات کارها انجام میشه.
ولی خب برای به دست اوردن کمترین ایدی از کوئری زیر استفاده کنید

SELECT MIN(`id`) FROM `tableName`

mtn677
شنبه 15 شهریور 1393, 17:43 عصر
SELECT MIN(`id`) FROM `tableName`


اینو میدونستم ولی نمبدونم چجوری باید کمترین مقدارو حذف کنم.چجوری از ابن کد استفاده کنم؟

Veteran
شنبه 15 شهریور 1393, 18:11 عصر
mysql_query('DELETE FROM `tableName` ORDER BY `id` LIMIT 1');

مهرداد سیف زاده
یک شنبه 16 شهریور 1393, 08:11 صبح
دوست عزیز شما ابتدا باید بری دنبال store procedure و یه سری دستوراتش رو یاد بگیری اگر به لینکی که داده بودم سری میزدید و همینطور کدهاشو نگاه میکردید مفهوم رو درک میکردید. چندان سخت هم نیست. procedure نوشتن کاملا شبیه همین زبان برنامه نویسی هست. یعنی متغییر و دستورات شرطی و چیزای دیگه داره. trigger هم چیزی هست که مثلا شما میگیرد قبل از insert‌و یا هر عمل دیگری فلان دستور اجرا بشه.

mtn677
چهارشنبه 26 شهریور 1393, 11:31 صبح
mysql_query('DELETE FROM `tableName` ORDER BY `id` LIMIT 1');

این کد روی لوکال هاست با wamp جواب داد ولی برای هاست خودم جواب نمیده چرا ؟با mysqli هم امتحان کردم نشد:متفکر: