21.5.3 Updatable and Insertable Views
http://dev.mysql.com/doc/refman/5.7/en/view-updatability.html
Some views are updatable and references to them can be used to      specify tables to be updated in data change statements. That is,      you can use them in statements such as       UPDATE,       DELETE, or       INSERT to update the contents of      the underlying table. Derived tables can also be specified in      multiple-table UPDATE and       DELETE statements, but can only be      used for reading data to specify rows to be updated or deleted.      Generally, the view references must be updatable, meaning that      they may be merged and not materialized. Composite views have more      complex rules.    
For a view to be updatable, there must be a one-to-one relationship between the rows in the view and the rows in the underlying table. There are also certain other constructs that make a view nonupdatable. To be more specific, a view is not updatable if it contains any of the following:
- 
Aggregate functions (
SUM(),MIN(),MAX(),COUNT(), and so forth) - 
DISTINCT - 
GROUP BY - 
HAVING - 
Subquery in the select list
Before MySQL 5.7.11, subqueries in the select list fail for
INSERT, but are okay forUPDATE,DELETE. As of MySQL 5.7.11, that is still true for nondependent subqueries. For dependent subqueries in the select list, no data change statements are permitted. - 
Certain joins (see additional join discussion later in this section)
 - 
Reference to nonupdatable view in the
FROMclause - 
Subquery in the
WHEREclause that refers to a table in theFROMclause - 
Refers only to literal values (in this case, there is no underlying table to update)
 - 
ALGORITHM = TEMPTABLE(use of a temporary table always makes a view nonupdatable) - 
Multiple references to any column of a base table (fails for
INSERT, okay forUPDATE,DELETE) 
                    
                
                
            
        
浙公网安备 33010602011771号