PDA

View Full Version : جلوگیری از تکراری وارد کردن



sh-eng
چهارشنبه 11 اردیبهشت 1392, 09:13 صبح
سلام
من یه سیستم ثبت مقاله دارم
که تعداد خیلی زیادی مقاله وارد پایگاه داده می کنه
حالا من می خوام کاربر مقاله با عنوان تکراری وارد نکنه
نمی تونم عنوان مقالات رو به عنوان کلید بگیرم چون طولانیه مثلا یک خط ممکنه باشه
اگر قبل از insert کردن جستجو بکنم عنوان مقاله رو هم خیلی کار جالبی نیست چون عناوین طولانی هستن
کسی راه بهتری می دونه؟

ahmad156
چهارشنبه 11 اردیبهشت 1392, 09:43 صبح
منطق برنامه این رو میگه که شما قبل از Insert باید جستجو کنین.برنامه که علم غیب نداره که بدونه کدوم عنوان ثبت هست یا نیست!!
چرا کار جالبی نیست؟؟؟

fakhravari
چهارشنبه 11 اردیبهشت 1392, 10:48 صبح
http://barnamenevis.org/showthread.php?396160-%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D8%B2-%D8%AB%D8%A8%D8%AA-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C&p=1757644&viewfull=1#post1757644

sh-eng
چهارشنبه 11 اردیبهشت 1392, 11:13 صبح
http://barnamenevis.org/showthread.php?396160-%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D8%B2-%D8%AB%D8%A8%D8%AA-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C&p=1757644&viewfull=1#post1757644

اون برای ثبت هم زمانه!

fakhravari
چهارشنبه 11 اردیبهشت 1392, 11:40 صبح
برای کار شما احتمال زیاد راهی به جز چک کردن قبلش نیست.
چون توی اون پستی که دادمت این خطا ها روی فیلد کلید صورت میگیره

Sanaz_s13
چهارشنبه 11 اردیبهشت 1392, 15:01 عصر
دوست عزیز بهترین راه همون چک کردن قبل از Insert ِ ، اول عنوانتونو تو دیتابیس Unique تعریف کنید بعد با یه تابع sql ی چک کنید که آیا این مقاله وجود داره یا نه
به همین سادگی :)

mjt10063
چهارشنبه 11 اردیبهشت 1392, 15:56 عصر
بنظر منم تنها راهش جستجو قبل درج مقاله
من زیاد sql بلد نیستم
ولی فکر کنم حتما یه راهی باشه
تو تنظیمات جدول که کار کلید رو انجام بده
و اصلا نزاره عنوان تکراری ثبت بشه

نیست ؟؟

sh-eng
پنج شنبه 12 اردیبهشت 1392, 10:58 صبح
بنظر منم تنها راهش جستجو قبل درج مقاله
من زیاد sql بلد نیستم
ولی فکر کنم حتما یه راهی باشه
تو تنظیمات جدول که کار کلید رو انجام بده
و اصلا نزاره عنوان تکراری ثبت بشه

نیست ؟؟
نمی دونم راهی هست که به جز کلید اصلی یونیک باشه یه فیلد یا نه اگه کسی می دونه بگه

ahmad156
پنج شنبه 12 اردیبهشت 1392, 11:05 صبح
بله شما میتونین فیلد رو unique تعریف کنین در حالی که primary key نباشه
روی فیلد مورد نظر Index بزارین سرعتش بشتر میشه.

sh-eng
پنج شنبه 12 اردیبهشت 1392, 11:46 صبح
می شه نمونه بزارین

ahmad156
پنج شنبه 12 اردیبهشت 1392, 11:55 صبح
دوست عزیز نمونه چی؟
تو لینک زیر توضیح داده
http://www.exforsys.com/tutorials/sql-server-2005/sql-server-defining-indexes.html

kafinetetaha
پنج شنبه 12 اردیبهشت 1392, 23:51 عصر
دوست عزیز با دستور زیر میتونی کنترلش کنی


(if not exist (select name from maghaleh

mehrtash3000
شنبه 14 اردیبهشت 1392, 20:45 عصر
هیچ راهی بجز کنترل دستی نداره
unique بودن روبا تغییر یه کلمه میشه برطرف کرد.