算法 算法 是可选的并是一个 MySQL 扩展到标准 SQL。算法有三个值:Undefined、Merge 或 Temptable。如果没有算法子句,默认算法是 Undefined。算法影响 MySQL 处理视图的方法。
Undefined
对于 Undefined,MySQL 选择要使用的算法。如果可能,它倾向于 Merge 而不是 Temptable,因为 Merge 通常更有效,而且如果使用临时表,视图是不可更新的。Merge
对于 Merge,会将引用视图的语句文本与视图定义合并,使得视图定义的一部份最代语句的对应部份。Temptable
对于 Temptable,视图的结果会被置于临时表中,然后使用它运行语句。
定义者
默认 定义者 值是运行 CREATE VIEW 的用户。(这是和 DEFINER = CURRENT_USER 相同。)如果给予一个用户值,它应该是一个 'user_name'@'host_name' 格式的 MySQL 帐号(使用在 GRANT 语句相同的格式)。user_name 及 host_name 值都是必须的。
安全性
SQL 安全性 特性决当为视图检查视图运行时的访问权限时要使用定哪一个 MySQL 帐号。合法的
特性值是 Definer 及 Invoker。这表明视图必须分别由定义它的或启用它的用户运行。默认的安全性值是 Definer。
检查选项
检查选项 可以给一个可更新视图来防止插入或更新行,除了那些 select_statement 中的 WHERE 子句为是的。Local 及 Cascaded 关键字决定检查测试的范围当视图是由其他视图定义。Local 限制检查选项只用在定义的视图上。Cascaded 导致检查基础视图进行评估。当没有给定关键字,默认为 Cascaded。