شرح صفوف ومحتوى الفقرة
متى يصبح العرض للقراءة فقط (Read-Only View) ويرفض أوامر التعديل؟ بمجرد أن يحتوي استعلام العرض على أي بنية SQL تدمج عدة صفوف في صف واحد أو تولّد قيماً مشتقة لا يمكن عكسها إلى صف أصلي محدد، يمنع MySQL التحديث ويُطلق الخطأ ERROR 1288 (HY000): The target table of the UPDATE is not updatable.
أبرز الموانع التي تجعل العرض غير قابل للتحديث:
- دوال التجميع والتلخيص: مثل
SUM()وCOUNT()وAVG()وMIN()وMAX(). - عبارات التجميع والتكرار: وجود
DISTINCTأوGROUP BYأوHAVING. - عمليات المجموعات والنوافذ: وجود
UNIONأوUNION ALLأو دوال النوافذOVER (...)أو الاستعلامات الفرعية في بندFROM.
SQL
SELECT Table_name, Is_updatable FROM information_schema.VIEWS WHERE ...;