MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

2 Cara Mendaftar semua Fungsi di MariaDB

Di bawah ini adalah dua opsi untuk mengembalikan daftar fungsi di MariaDB.

The SHOW FUNCTION STATUS Perintah

Cara tercepat untuk membuat daftar semua fungsi adalah dengan menggunakan SHOW FUNCTION STATUS perintah.

Cukup jalankan yang berikut untuk membuat daftar semua fungsi:

SHOW FUNCTION STATUS;

Sintaksnya seperti ini:

SHOW FUNCTION STATUS
    [LIKE 'pattern' | WHERE expr]

Jadi Anda dapat menggunakan LIKE atau WHERE klausa untuk mempersempit hasil.

Contoh:

SHOW FUNCTION STATUS LIKE '%customer%';

Contoh hasil:

+--------+----------------------------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db     | Name                       | Type     | Definer          | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+--------+----------------------------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| sakila | get_customer_balance       | FUNCTION | [email protected] | 2021-11-13 07:26:47 | 2021-11-13 07:26:47 | DEFINER       |         | utf8mb4              | utf8mb4_general_ci   | utf8mb4_general_ci |
| sakila | inventory_held_by_customer | FUNCTION | [email protected] | 2021-11-13 07:26:47 | 2021-11-13 07:26:47 | DEFINER       |         | utf8mb4              | utf8mb4_general_ci   | utf8mb4_general_ci |
+--------+----------------------------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+

Kita dapat menggunakan WHERE klausa untuk memfilter hasil menurut kolom. Misalnya, kita dapat memfilter hasil ke database yang diberikan:

SHOW FUNCTION STATUS WHERE db = 'music';

Contoh hasil:

+-------+------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db    | Name | Type     | Definer          | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+-------+------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| music | test | FUNCTION | [email protected] | 2021-11-27 09:46:25 | 2021-11-27 09:46:25 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8mb4_general_ci |
+-------+------+----------+------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+

SHOW FUNCTION STATUS perintah bekerja sangat mirip dengan SHOW PROCEDURE STATUS perintah, yang mengembalikan daftar prosedur tersimpan.

information_schema.routines Tabel

Cara lain untuk mendapatkan daftar fungsi di MariaDB adalah dengan menanyakan information_schema.routines tabel.

Contoh:

SELECT 
    routine_schema as "Database",
    routine_name
FROM 
    information_schema.routines
WHERE 
    routine_type = 'FUNCTION'
ORDER BY 
    routine_schema ASC, 
    routine_name ASC;

Contoh hasil:

+----------+----------------------------+
| Database | routine_name               |
+----------+----------------------------+
| music    | test                       |
| sakila   | get_customer_balance       |
| sakila   | inventory_held_by_customer |
| sakila   | inventory_in_stock         |
+----------+----------------------------+

Tabel ini juga menyimpan informasi tentang prosedur tersimpan. Dalam contoh di atas, saya mengecualikan mereka dengan menggunakan WHERE klausa untuk mengembalikan fungsi saja (yaitu objek dengan routine_type dari FUNCTION ).

Untuk menyertakan prosedur tersimpan, kami dapat menghapus WHERE klausa:

SELECT 
    routine_schema as "Database",
    routine_name,
    routine_type
FROM 
    information_schema.routines
ORDER BY 
    routine_schema ASC, 
    routine_name ASC;

Dalam hal ini saya juga menambahkan routine_type kolom sehingga kita dapat membedakan antara prosedur dan fungsi.

Kami juga dapat mempersempitnya ke database tertentu:

SELECT 
    routine_schema as "Database",
    routine_name,
    routine_type
FROM 
    information_schema.routines
WHERE 
    routine_schema = 'sakila'
ORDER BY 
    routine_name ASC;

Hasil:

+----------+----------------------------+--------------+
| Database | routine_name               | routine_type |
+----------+----------------------------+--------------+
| sakila   | film_in_stock              | PROCEDURE    |
| sakila   | film_not_in_stock          | PROCEDURE    |
| sakila   | get_customer_balance       | FUNCTION     |
| sakila   | inventory_held_by_customer | FUNCTION     |
| sakila   | inventory_in_stock         | FUNCTION     |
| sakila   | rewards_report             | PROCEDURE    |
+----------+----------------------------+--------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Database MySQL Saya Kehabisan Ruang Disk

  2. Apa yang Layak bagi Pelanggan Kami:Memperkenalkan Dokumentasi MariaDB Enterprise

  3. Masalah Umum Teratas dengan MHA dan Cara Memperbaikinya

  4. Cara Mengenkripsi Cadangan MySQL &MariaDB Anda

  5. Memantau Kinerja MariaDB di Cloud Hibrida