در این پست میخوام نحوه غیر تکراری بودن بر اساس دو ستون در یک جدول دیتابیس رو توضیح بدم
اما صورت مساله برای درک بهتر مطلب:
فرض کنید یک جدول داریم که سه ستون داره به این صورت
table1
________________________
ستون 1 | ستون 2 | ستون 3 |
-----------------------------------------
قراره که در هر ستون یک عددی ذخیره بشه
مثلا در ستون یک id در ستون 2 شماره در ستون سه تاریخ
ولی نمیخوایم برای یک id در یک تاریخ دو مقدار جداگانه درست بشه
یعنی هر id در یک تاریخ معین فقط یک ردیف داشته باشه
برای اینکار اگر id رو index قرار بدیم اونوقت id برای تاریخ های دیگه هم مقدار نمیشه چون مقدار واحد خواهد داشت
و همچنین اگر فقط تاریخ رو مقدار ایندکس قرار بدیم در کلا برای یک تاریخ فقط یک id میتونیم اضافه کنیم
برای این کار باید دو ستون id و تاریخ رو ایندکس قرار بدیم
برای این کار و درک بهتر به این صفحه نیز میتونید مراجعه کنید : http://www.w3schools.com/sql/sql_create_index.asp
اما کد برای ایندکس کردن دو ستون از دیتابیس به این صورت می باشد
CREATE
UNIQUE INDEX name_delkhah
ON yourTableName (soton1, soton3)
دقت کنید که بدون unique و با unique وجود داره که اگر unique باشه مقدار duplicate اجازه داده نمیشه
همچنین برای وارد کردن اطلاعات راه های مختلفی وجود داره برای اینکه از وارد کردن اطلاعات تکراری جلوگیری کنیم
یکیش insert ignore و اون یکی insert on duplicate هست
insert ignore به این شکل هست که وقتی یک کلید تکراری پیدا کنه اونو رد میکنه در غیر این صورت مقدار رو وارد دیتابیس میکنه
دومی یعنی insert on duplicate هم چک میکنه اگر کلید تکراری on duplicate key update رو چک میکنه و کلید مورد نظر رو با مقدار دیگری به روز رسانی میکنه
همچنین replace هم برای کار مشابه در نظر گرفته شده که برای دیدن نمونه و اطاعات کامل میتونید از سایت https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html دیدن کنید
هیچ نظری موجود نیست:
ارسال یک نظر