معرفی
اغلب، ما نیاز داریم که کلیدی مانند کلید اصلی، کلید منحصر به فرد یا کلید خارجی را به جدول پایگاه داده موجود اضافه کنیم. ما می توانیم این کار را با استفاده از یک پرس و جو SQL انجام دهیم. در این مقاله، یاد خواهید گرفت که چگونه کلیدهای اصلی، کلیدهای منحصر به فرد یا کلیدهای خارجی را پس از ایجاد جدول به جدول اضافه کنید. ما از یک پرس و جو ساده SQL استفاده خواهیم کرد.
گاهی اوقات، هنگام کار روی کلیدها، مشکلات زیر را مییابیم:
- ما یک جدول ایجاد کرده ایم اما کلید اصلی جدول را تعریف نکرده ایم.
- ما یک جدول ایجاد کرده ایم اما کلیدهای منحصر به فرد جدول را تعریف نکرده ایم.
- ما جدول را ایجاد کردیم اما کلیدهای خارجی جدول را تعریف نکردیم.
- تعداد زیادی کلید منحصر به فرد/کلیدهای خارجی روی یک میز وجود دارد. و ما باید آنها را ایجاد کنیم.
- ما باید کلیدهای قدیمی موجود را با چند کلید جدید جایگزین کنیم.
- مهمتر از همه، ما دسترسی به پایگاه داده برای ایجاد کلیدهای جدید روی سرور با SSMS یا UI نداریم.
پیشنهاد می کنم قبل از مطالعه مقاله قبلی من که در مورد استفاده از کلیدها در SQL Server است، مطالعه کنید. اگر ابتدا آن مقاله را بخوانید، درک آن آسان تر خواهد شد. مثال جدول قبلی را در اینجا آوردم. اینم لینک مقاله قبلی
من جداول زیر را ایجاد کردم.
tb_country
tb_state
tb_city
در حال حاضر، هیچ کلید و هیچ کلید ترکیبی بین این جداول وجود ندارد، زیرا من هیچ کلیدی برای آنها اعلام نکرده ام. در حالی که من به کلیدهای زیر برای آنها نیاز دارم.
- [country_id] را به عنوان کلید اصلی در [tb_country] تعریف کنید.
- [state_id] را به عنوان کلید اصلی در [tb_state] تعریف کنید.
- [city_id] را به عنوان کلید اصلی در [tb_city] تعریف کنید.
- کلید منحصر به فرد را در [tb_country] با فیلد [country_name] تعریف کنید.
- کلید منحصر به فرد را در [tb_state] با [country_id] و [state_name] تعریف کنید.
- کلید منحصر به فرد را در [tb_city] با [country_id]، [state_id] و [city_name] تعریف کنید.
- یک کلید خارجی در [tb_state] در [country_id] تعریف کنید (از [country_id] از [tb_country] به عنوان اصلی استفاده کنید).
- یک کلید خارجی در [tb_city] با [country_id] تعریف کنید (از [country_id] از [tb_country] به عنوان اصلی استفاده کنید).
- یک کلید خارجی در [tb_city] با [state_id] تعریف کنید (از [state_id] از [tb_state] به عنوان اصلی استفاده کنید)
حال، اجازه دهید با به روز رسانی جداول خود با استفاده از پرس و جوهای SQL مربوط، مسائل فوق را یکی یکی حل کنیم.
[country_id] را به عنوان کلید اصلی در [tb_country] تعریف کنید،
[state_id] را به عنوان کلید اصلی در [tb_state] تعریف کنید،
[city_id] را به عنوان کلید اصلی در [tb_city] تعریف کنید،
کلید منحصر به فرد را در [tb_country] با فیلد [country_name] تعریف کنید،
کلید منحصر به فرد را در [tb_state] با [country_id] و [state_name] تعریف کنید،
کلید منحصر به فرد را در [tb_city] با [country_id]، [state_id] و [city_name] تعریف کنید،
یک کلید خارجی در [tb_state] در [country_id] تعریف کنید (از [country_id] از [tb_country] به عنوان اصلی استفاده کنید)،