هل تعود بيانات العمود إذا حذفته ثم أضفته بالاسم نفسه؟

متوسطقراءة دقيقةآخر تحديث 2 أكتوبر 2026

SQL قواعد البيانات

الإجابة

حذف عمود باستخدام DROP COLUMN يزيل ذلك العمود والقيم التي كانت مخزنة فيه. إذا أضفت لاحقًا عمودًا يحمل الاسم نفسه، فهو عمود جديد وفق تعريفه الجديد. لا يحتفظ MySQL بربط خفي يعيد القيم القديمة لمجرد تطابق الاسم، ولا تعد إعادة الإضافة وسيلة للتراجع عن الحذف.

تظهر أهمية هذه النقطة عند تعديل ملفات ترحيل قاعدة البيانات. فقد يظن المطور أن حذف حقل ثم إنشاؤه بنوع آخر يحافظ على محتواه، بينما يؤدي ذلك إلى فقدان القيم الأصلية. إذا كان المطلوب تغيير النوع، فابدأ بدراسة MODIFY COLUMN ومتطلبات التحويل، أو انقل البيانات بطريقة صريحة قبل إزالة العمود.

مثال

ALTER TABLE books DROP COLUMN rating;
ALTER TABLE books ADD COLUMN rating INT NOT NULL DEFAULT 0;

بعد المثال تظهر قيمة الصفر في العمود الجديد للصفوف الموجودة، مهما كانت تقييماتها قبل الحذف. يتطلب استرجاع التقييمات الأصلية مصدرًا آخر محفوظًا مسبقًا.

باختصار: إعادة الاسم تنشئ عمودًا جديدًا، ولا تستعيد البيانات التي حذفها DROP COLUMN.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر فهمك

ما قيمة rating التي يعرضها الاستعلام الأخير؟

CREATE TABLE books (
  id INT PRIMARY KEY,
  rating INT NOT NULL
);
INSERT INTO books VALUES (1, 5);
ALTER TABLE books DROP COLUMN rating;
ALTER TABLE books ADD COLUMN rating INT NOT NULL DEFAULT 0;
SELECT rating FROM books WHERE id = 1;