ALTER VIEW
Atomically replace a view with a new view defined by a SELECT
statement. ALTER VIEW
is an online operation and will not cause concurrently executing queries to fail.
Syntax
ALTER [DEFINER = { <user> | CURRENT_USER }] [SCHEMA_BINDING = { ON | OFF }] VIEW <view_name> AS <select_statement>
Remarks
ALTER VIEW
atomically replaces view<view_name>
with a new view defined by<select_statement>
.ALTER VIEW
privileges are granted only to the designer of the view and toSUPER
users. If aSUPER
user alters a view, that user commandeersALTER
privileges from the designer of the view.The
DEFINER
clause (ALTER DEFINER = <user>@<host> VIEW <viewname> AS SELECT ...
) specifies the user that should be used for security checks when a view is referenced by a query. The default value isCURRENT_USER
.When
SCHEMA_BINDING
is set toON
, objects referenced by the view cannot be dropped if the view exists; you need to drop the view before dropping these objects. By default,SCHEMA_BINDING
is set toOFF
.The user who runs
ALTER DEFINER..VIEW
must have theSUPER
permission.See the Permission Matrix for the required permission.
Examples
ALTER VIEW view_name AS SELECT * FROM table_name WHERE user_id = "real_person";
Related Topics