هل يؤدي UPDATE على View إلى تعديل الجدول الأساسي؟

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

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

الإجابة

يمكن تنفيذ UPDATE عبر بعض العروض في MySQL عندما تكون قابلة للتحديث. في العرض البسيط الذي يقرأ أعمدة مباشرة من جدول واحد، يمكن ربط الصف المعروض بصفه الأساسي بوضوح. عند تحديث عمود قابل للتحديث عبر هذا العرض، يقع التغيير على بيانات الجدول الأساسي نفسه.

لا ينشئ العرض طبقة بيانات منفصلة تحفظ التعديلات بعيدًا عن الجدول. لذلك فإن قراءة الصف من الجدول بعد تحديثه عبر العرض تكشف القيمة الجديدة. لكن لا يصح تعميم ذلك على جميع العروض، فوجود تجميع أو أعمدة مشتقة أو تراكيب أخرى قد يمنع التحديث أو يحد من الأعمدة التي يمكن تغييرها.

مثال

CREATE TABLE employees (
  id INT PRIMARY KEY,
  salary INT
);
INSERT INTO employees VALUES (1, 900);
CREATE VIEW employee_pay AS
SELECT id, salary FROM employees;
UPDATE employee_pay SET salary = 950 WHERE id = 1;
SELECT salary FROM employees WHERE id = 1;

في هذا المثال، يشير العمود salary داخل العرض مباشرة إلى العمود نفسه في الجدول. لا توجد دالة تجميع أو عملية حسابية تجعل القيمة غير قابلة للإسناد إلى صف محدد، ولذلك ينجح التحديث.

باختصار: تحديث عرض بسيط قابل للتحديث يغير الصف الأساسي، ولا يقتصر على نتيجة عرض مؤقتة.

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

اختبر فهمك

ما قيمة salary التي يعيدها الاستعلام الأخير؟

CREATE TABLE employees (
  id INT PRIMARY KEY,
  salary INT
);
INSERT INTO employees VALUES (1, 1000), (2, 1500);
CREATE VIEW employee_pay AS
SELECT id, salary FROM employees;
UPDATE employee_pay
SET salary = salary + 200
WHERE id = 1;
SELECT salary FROM employees WHERE id = 1;