تالار گفتمان مانشت
alter table - نسخه‌ی قابل چاپ

alter table - لهمشد - ۲۰ دى ۱۳۸۹ ۰۶:۴۸ ب.ظ

سلام دوستان:
من منظور این مطلب رو بدرستی متوجه نمیشم:
فر ض کنید رابطه داریم بنام s با ۳ صفت بنام
کد:
s#,sname,city
الان این پرس وجو رو ببینید:
کد:
alter table s
add discount smallint
خب طبق تعریف دستور alter این دستور برای ایجاد تغییرات در یک جدول بکار میره و باز هم اگه
پرس وجو رو اجرا کنیدم رابطه S به ۴ صفت افزایش پیدا میکنه و این مطلب بیان شده که:
نقل قول: تمام رکورد های جدول S با اجرای این حکم به ۴ فیلد افزایش خواهد یافت و قدار فیلد پنجم null می شود .
اگه جدول خالی نباشه مقدار تمام فیلد discount برابر null میشه درسته ؟؟
خب الان ببینید این جمله گفته شده:
نقل قول: در دستور alter table نمی توان عبارت NOT null را بکار برد
خب فرض میکنیم این هم درست .
بعد دقیقا اومدند این جمله رو گفتند:
نقل قول: با این دستور می توان تعریف کلید اصلی و کلید خارجی را به جدول اضا فه کرد یا حذف کرد
Huhکه این مصلب برام قابل قبول نیست زیرا مگه میشه کلید NULL باشه اصلا یکی از شروط اساسی اینکه که کلید NULL نباشه و سوال من هم اینجاست که چطور ممکنه دستور این ویژگی رو داشته باشه در صورتی که وقتی اضا فه میشه مقادیر صفت اضافه شده NULL هستش؟؟

alter table - bijibuji - 20 دى ۱۳۸۹ ۰۷:۳۴ ب.ظ

شما همیشه حامد به مسائل نگاه می کنی آقا / خانوم لهمشد
اینه که در این مسائل به مشکلات اینطوری برخورد می کنی
این جملات با هم در تناقض نیستن
شما فرض کن که یه جدول خام تعریف کردی
کلید اصلی و خارجی رو هم معلوم کردی
جدول ات آماده است که داده واردش بشه
حالا یهو متوجه می شی که کلید اصلی رو اشتباه تعریف کردی
دو راه داری:

۱- جدول ات رو بترکونی و دوباره از اول درستش کنی
۲- همین جدول رو تصحیح کنی

واسه تصحیح جدول فعلی می تونی از دستور alter table به معنای تغییر در جدول استفاده کنی.
حالا اینکه در جدول ات داده ای داشته باشی و نشه از دستور استفاده کرد که ناقض اصل ماجرا نیست.

مثال:

اگر بخوای ماشین ات راه بره‌، باید در باک اش بنزین بریزی.
اگر بخوای ماشین ات راه بره باید ماشین ات روشن باشه.
در پمپ بنزین می شه در باک ماشین ات بنزین بریزی (قبل از طرح هدفمند سازی)
اگر ماشین ات روشن باشه پمپ بنزین نمی ذاره در باک ماشین ات بنزین بریزی

حالا شما اومدی می پرسی چطوری بنزین بزنم؟

alter table - hatami - 21 دى ۱۳۸۹ ۰۶:۱۳ ب.ظ

و بعلاوه تنها کلیدی که میتونه null باشه کلید خارجی است