MySQL 9.0 發行說明
SHOW CREATE PROCEDURE proc_name
此陳述式是 MySQL 的延伸功能。它會傳回可用於重新建立指定預存程序的確切字串。類似的陳述式 SHOW CREATE FUNCTION
會顯示關於預存函數的資訊 (請參閱章節 15.7.7.9,「SHOW CREATE FUNCTION 陳述式」)。
若要使用任一陳述式,您必須是指定為常式 DEFINER
的使用者,擁有 SHOW_ROUTINE
權限,在全球層級擁有 SELECT
權限,或在包含常式的範圍內擁有授與的 CREATE ROUTINE
、ALTER ROUTINE
或 EXECUTE
權限。如果您只有 CREATE ROUTINE
、ALTER ROUTINE
或 EXECUTE
權限,則 Create Procedure
或 Create Function
欄位顯示的值為 NULL
。
mysql> SHOW CREATE PROCEDURE test.citycount\G
*************************** 1. row ***************************
Procedure: citycount
sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_ENGINE_SUBSTITUTION
Create Procedure: CREATE DEFINER=`me`@`localhost`
PROCEDURE `citycount`(IN country CHAR(3), OUT cities INT)
BEGIN
SELECT COUNT(*) INTO cities FROM world.city
WHERE CountryCode = country;
END
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
Database Collation: utf8mb4_0900_ai_ci
mysql> SHOW CREATE FUNCTION test.hello\G
*************************** 1. row ***************************
Function: hello
sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_ENGINE_SUBSTITUTION
Create Function: CREATE DEFINER=`me`@`localhost`
FUNCTION `hello`(s CHAR(20))
RETURNS char(50) CHARSET utf8mb4
DETERMINISTIC
RETURN CONCAT('Hello, ',s,'!')
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
Database Collation: utf8mb4_0900_ai_ci
character_set_client
是建立常式時 character_set_client
系統變數的工作階段值。collation_connection
是建立常式時 collation_connection
系統變數的工作階段值。Database Collation
是常式相關聯資料庫的定序。