15.7.7.10 Отображение заявления CREATE LIBRARY
SHOW CREATE LIBRARY [database_name.]library_name
Возвращает текст, который можно использовать для повторного создания указанной JavaScript-библиотеки в указанной базе данных; база данных по умолчанию — текущая база данных, если она не указана. Дополнительную информацию см. в разделе 15.1.16, «Заявление CREATE LIBRARY».
Для учетной записи, отличной от той, которая создала библиотеку, доступ к свойствам процедуры зависит от привилегий, предоставленных учетной записи, как описано здесь:
С привилегией
SHOW_ROUTINEили глобальной привилегиейSELECT, учетная запись может видеть все свойства библиотеки, включая её определение. Это означает, чтоSHOW CREATE LIBRARYвыводит исходный код библиотеки, и все библиотеки в таблице Информационной Схемыlibrariesбудут видны для этой учетной записи.С привилегией
CREATE ROUTINE,ALTER ROUTINEилиEXECUTE, предоставленной в области, включающей библиотеку, учетная запись может видеть все свойства процедуры, кроме её определения. Это означает, что соответствующая строка вINFORMATION_SCHEMA.LIBRARIESбудет видна, ноSHOW CREATE LIBRARYне выводит исходный код библиотеки.
Код библиотеки может содержать SQL-запросы (известные как вызов JavaScript SQL). Запросы ограничены в зависимости от INVOKER и DEFINER контекстов безопасности хранимой программы, использующей эту библиотеку. Такие SQL-запросы следуют обычным ограничениям, применяемым к хранимым функциям и хранимым процедурам (см. раздел 27.9, «Ограничения на хранимые программы»).
mysql> SHOW CREATE LIBRARY jslib.lib1\G
*************************** 1. row ***************************
Library: lib1
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 Library: CREATE LIBRARY `lib1`
LANGUAGE JAVASCRIPT
AS $$
export function f(n) {
return n
}
$$
1 row in set (0.00 sec)
mysql> SHOW CREATE LIBRARY jslib.lib2\G
*************************** 1. row ***************************
Library: lib2
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 Library: CREATE LIBRARY `lib2`
LANGUAGE JAVASCRIPT
AS $$
export function g(n) {
return n * 2
}
$$
1 row in set (0.00 sec)
Заявление SHOW CREATE LIBRARY было добавлено в MySQL 9.2.0.
Дополнительную информацию и примеры см. в разделе 27.3.8, «Использование JavaScript-библиотек».
© 2025 Oracle
Licensed under the GPLv2 License.