ビューを作成
CREATE VIEWの文は、 SELECT番目の文をテーブルと同様にクエリ可能なオブジェクトとして保存します。TiDB のビューは非マテリアライズドです。つまり、ビューがクエリされると、TiDB は内部的にクエリを書き換え、ビュー定義と SQL クエリを結合します。
概要
- CreateViewStmt
 - OrReplace
 - ViewAlgorithm
 - ViewDefiner
 - ViewSQLSecurity
 - ViewName
 - ViewFieldList
 - ViewCheckOption
 
CreateViewStmt ::=
    'CREATE' OrReplace ViewAlgorithm ViewDefiner ViewSQLSecurity 'VIEW' ViewName ViewFieldList 'AS' CreateViewSelectOpt ViewCheckOption
OrReplace ::=
    ( 'OR' 'REPLACE' )?
ViewAlgorithm ::=
    ( 'ALGORITHM' '=' ( 'UNDEFINED' | 'MERGE' | 'TEMPTABLE' ) )?
ViewDefiner ::=
    ( 'DEFINER' '=' Username )?
ViewSQLSecurity ::=
    ( 'SQL' 'SECURITY' ( 'DEFINER' | 'INVOKER' ) )?
ViewName ::= TableName
ViewFieldList ::=
    ( '(' Identifier ( ',' Identifier )* ')' )?
ViewCheckOption ::=
    ( 'WITH' ( 'CASCADED' | 'LOCAL' ) 'CHECK' 'OPTION' )?
例
mysql> CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, c1 INT NOT NULL);
Query OK, 0 rows affected (0.11 sec)
mysql> INSERT INTO t1 (c1) VALUES (1),(2),(3),(4),(5);
Query OK, 5 rows affected (0.03 sec)
Records: 5  Duplicates: 0  Warnings: 0
mysql> CREATE VIEW v1 AS SELECT * FROM t1 WHERE c1 > 2;
Query OK, 0 rows affected (0.11 sec)
mysql> SELECT * FROM t1;
+----+----+
| id | c1 |
+----+----+
|  1 |  1 |
|  2 |  2 |
|  3 |  3 |
|  4 |  4 |
|  5 |  5 |
+----+----+
5 rows in set (0.00 sec)
mysql> SELECT * FROM v1;
+----+----+
| id | c1 |
+----+----+
|  3 |  3 |
|  4 |  4 |
|  5 |  5 |
+----+----+
3 rows in set (0.00 sec)
mysql> INSERT INTO t1 (c1) VALUES (6);
Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM v1;
+----+----+
| id | c1 |
+----+----+
|  3 |  3 |
|  4 |  4 |
|  5 |  5 |
|  6 |  6 |
+----+----+
4 rows in set (0.00 sec)
mysql> INSERT INTO v1 (c1) VALUES (7);
ERROR 1105 (HY000): insert into view v1 is not supported now.
MySQLの互換性
- 現在、TiDB 内のどのビューも挿入または更新できません (つまり、 
INSERT VIEWとUPDATE VIEWサポートされていません)。5WITH CHECK OPTION構文的に互換性があるだけで、有効ではありません。 - 現在、TiDB のビューは
ALTER VIEWサポートしていませんが、代わりにCREATE OR REPLACE使用できます。 - 現在、 
ALGORITHMフィールドは TiDB において構文的に互換性があるものの、効果がありません。TiDB は現在 MERGE アルゴリズムのみをサポートしています。