文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙尺寸) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  SHOW CREATE VIEW 陳述式

15.7.7.14 SHOW CREATE VIEW 陳述式

SHOW CREATE VIEW view_name

此陳述式會顯示建立指定檢視表的 CREATE VIEW 陳述式。

mysql> SHOW CREATE VIEW v\G
*************************** 1. row ***************************
                View: v
         Create View: CREATE ALGORITHM=UNDEFINED
                      DEFINER=`bob`@`localhost`
                      SQL SECURITY DEFINER VIEW
                      `v` AS select 1 AS `a`,2 AS `b`
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci

character_set_client 是檢視表建立時的 character_set_client 系統變數的工作階段值。collation_connection 是檢視表建立時的 collation_connection 系統變數的工作階段值。

使用 SHOW CREATE VIEW 需要 SHOW VIEW 權限,以及針對所討論檢視表的 SELECT 權限。

檢視表資訊也可以從 INFORMATION_SCHEMA VIEWS 表格取得。請參閱 第 28.3.47 節「INFORMATION_SCHEMA VIEWS 表格」

MySQL 讓您使用不同的 sql_mode 設定來告知伺服器要支援哪種 SQL 語法。例如,您可能會使用 ANSI SQL 模式,以確保 MySQL 正確解譯查詢中的標準 SQL 連接運算子,也就是雙豎線 (||)。如果您接著建立一個連接項目的檢視表,您可能會擔心將 sql_mode 設定變更為與 ANSI 不同的值,可能會導致檢視表失效。但情況並非如此。無論您如何撰寫檢視表定義,MySQL 都會以相同的方式(以正規形式)儲存它。以下範例顯示伺服器如何將雙豎線連接運算子變更為 CONCAT() 函數

mysql> SET sql_mode = 'ANSI';
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE VIEW test.v AS SELECT 'a' || 'b' as col1;
Query OK, 0 rows affected (0.01 sec)

mysql> SHOW CREATE VIEW test.v\G
*************************** 1. row ***************************
                View: v
         Create View: CREATE VIEW "v" AS select concat('a','b') AS "col1"
...
1 row in set (0.00 sec)

以正規形式儲存檢視表定義的優點是,稍後對 sql_mode 值所做的變更不會影響檢視表的結果。然而,額外的一個結果是,伺服器會從定義中移除 SELECT 前面的註解。