ورود

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



BrainStorm
دوشنبه 29 مهر 1387, 13:25 عصر
دو تا جدول داریم که هر دوی آنها پر هستند، می خواهیم کلید اصلی جدول اول را وارد فیلد کلید خارجی جدول دوم کنیم. راه انجام این کار چیه ؟

کم حوصله
سه شنبه 30 مهر 1387, 10:27 صبح
سلام


Insert Into Table2 (Foreign Key)
Select Primary Key From Table1

BrainStorm
چهارشنبه 01 آبان 1387, 08:44 صبح
با تشکر از جواب شما اما دستور Insert وقتی به کار میاد که جدول دوم خالی باشه ولی، هر دو جدولی که من دارم پر هست و نمی شه این کار را کرد. من می خوام یه فیلد از اون را UPDATE کنم ولی مثل اینکه راه حل SQL ای نداره.

رضا جاسبی
چهارشنبه 01 آبان 1387, 23:47 عصر
دوستمون واقعا کم حوصله جواب داده. ولی صورت مساله شما هم خیلی مبهمه. اگر مثال دقیقی بزنی و بگی که خودت بصورت دستی این کار رو چطور انجام میدی شاید بتونیم کمکی بکنیم.

BrainStorm
پنج شنبه 02 آبان 1387, 09:52 صبح
عرض کنم که ببینید: ما در سیستم قبلی یه جدول داشتیم به نام Teacher با حدود 10000 رکورد که شامل اطلاعات فردی و اطلاعات تماس مربیان بود تو اصلاح سیستم اومدیم و قسمت اطلاعات شخصی (Teacher) را از اطلاعات تماس (Contact) جدا کردیم. اما همانطور که در شکل می بینید جدول Contact در جداول دیگر هم کاربرد دارد. به همین دلیل خواستیم فیلد Contact.Contact_ID را به Teacher.Contact_ID انتقال دهیم که با مشکل مواجه شدیم این کار باید از طریق تریگرها امکان پذیر باشد اما ما نتوانستیم.

رضا جاسبی
دوشنبه 06 آبان 1387, 23:17 عصر
شما همین مشکل رو با سایر جداول هم دارید؟ اینطور که می بینم جدول contact با همه جداول دیگر همین ارتباطی که با teacher داره رو داره. آیا این مشکل فقط با teacher هست؟ شما ارتباط بین teacher و contact رو ظاهرا از اول برقرار نکردی. فکر کنم به قول اون جک قدیمی : بنده من حالا بدبخت شدی.
اگر سیستم قدیم رو داری فکر کنم بهتره که دوباره این تجزیه و جدا کردن رو انجام بدی اینبار با برقراری این ارتباط از اول.

کم حوصله
چهارشنبه 08 آبان 1387, 12:17 عصر
سلام
اگر منظورتون اینکه دو جدول را باهم join کنید و بعد آپدیت اینو امتحان کنید



Update B
Set B.Foreign_Key = A.Primary_Key
From Table1 AS A
Inner Join Table2 AS B ON A.Id = B.Id

BrainStorm
شنبه 11 آبان 1387, 23:55 عصر
بله تنها این مشکل را با جدول teacher داشتم چون تنها این جدول پر بود و بقیه جدول ها توی سیستم جدید کامل می شدند. اما با نیازسنجی دوباره پروژه به این توافق رسیدیم که جای کلید ها را عوض کنیم یعنی از کلید اصلی teacher توی contact استفاده کنیم.
با تشکر از همه شما

رضا جاسبی
سه شنبه 14 آبان 1387, 20:23 عصر
دو تا مساله:
اول اینکه به نظر من این روش کلید گذاری اشتباهه. هرچند که ظاهرا چون ارتباط یک به یک هست مشکلی در صحت داده ها نداری
دوم و مهمتر: چطوری این لینک رو برقرار میکنی؟ اینطور که من متوجه شدم شما یه سری مشخصات معلم ها رو داری و یک سری آدرس و اطلاعات تماس که هیچ لینکی به هم ندارند. چه فرقی می کنه که بگی این معلم در این آدرس و ... هست یا اینکه بگی این آدرس و ... مال این معلم است؟ در نهایت اگر همین اطلاعات رو بخواهی باید سطر به سطر گزینه مورد نظرت رو پیدا کنی و کلید سطر مقصد (حدول اصلی ) رو در کلید خارجی جدول فرعی به صورت دستی وارد کنی.