Spec-Zone.ru › MySQL 9.2

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.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/show-create-library.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API