Introduction
Simple views can be updated like base tables for data maintenance convenience.
MySQL allows INSERT, UPDATE, DELETE on qualifying updatable views.
It is widely used for:
- Simplified data maintenance
- Controlled data access
- Consistent data views
What is Update View
Updatable views allow direct modification of underlying base tables.
Only simple views (no GROUP BY, DISTINCT, aggregate) qualify.
Basic Syntax
sql
-- Create updatable view
-- Update through view
Example
sql
INSERT through View
Insert new records via view.
sql
DELETE through View
Delete via view filters.
sql
Updatable View Rules
| Allowed | Not Allowed |
| Single table | GROUP BY |
| No DISTINCT | Aggregate functions |
| Simple WHERE | Subqueries |
| Key columns | JOINs |
WITH CHECK OPTION
Prevents updates violating view WHERE clause.
sql
-- This fails:
Update with Multiple Columns
Modify multiple view columns.
sql
Update with JOIN View
Most JOIN views non-updatable.
sql
-- UPDATE fails (non-updatable)
Update with WHERE Clause
Filter updates through view.
sql
View Column Limitations
Only base table columns updatable.
sql
-- Only name, marks updatable (not weighted)
CASCADED vs LOCAL Check Option
sql
-- CASCADED: Checks all referenced views
-- LOCAL: Only this view's condition
Execution Order with View Updates
View WHERE → UPDATE base table → Re-evaluate view
Performance Considerations
- Simple views = base table speed
- CHECK OPTION adds validation overhead
- Complex views non-updatable
- Indexes on base tables still work
Important Notes
- Only simple single-table views updatable
- GROUP BY/DISTINCT/JOIN = non-updatable
- WITH CHECK OPTION prevents invalid updates
- Views inherit base table permissions
- DELETE affects all matching base rows
Example Scenario
Maintain active high-performers view:
sql
-- Valid updates
-- Invalid (fails CHECK OPTION)
-- UPDATE TopActiveStudents SET marks = 70 WHERE id = 5;
Common Mistakes
- Updating non-updatable complex views
- Forgetting WITH CHECK OPTION
- Expecting JOIN view updatability
- Multiple base table modifications
- Permission issues on base tables
Key Points to Remember
- Simple views updatable like tables
- No GROUP BY/DISTINCT/JOIN for updatability
- WITH CHECK OPTION validates updates
- INSERT/UPDATE/DELETE propagate to base
- Indexes on base tables work through views
- Permissions inherited from base tables