MySQL是最常用的關(guān)系型數(shù)據(jù)庫之一,它提供了許多常用的函數(shù),用于處理數(shù)據(jù)并完成各種操作。這些函數(shù)通常包括數(shù)學(xué)函數(shù)、字符串函數(shù)、日期時(shí)間函數(shù)等,它們各司其職,在不同的場景下發(fā)揮作用。
那么,MySQL函數(shù)到底保存在哪里呢?
MySQL函數(shù)是保存在MySQL的系統(tǒng)數(shù)據(jù)庫中的。具體來說,MySQL系統(tǒng)數(shù)據(jù)庫是指mysql數(shù)據(jù)庫,它包含一些用于管理MySQL系統(tǒng)的表和視圖。其中,mysql.func表就是用于存儲(chǔ)MySQL函數(shù)的地方。
mysql>use mysql; Database changed mysql>show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | audit_user | | column_stats | | columns_priv | | db | | event | | func | | general_log | | gtid_slave_pos | | help_category | | help_keyword | | help_relation | | help_topic | | innodb_index_stats | | innodb_table_stats | | log | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | roles_mapping | | servers | | slow_log | | table_stats | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ 31 rows in set (0.00 sec)
在上面的示例中,我們進(jìn)入了mysql數(shù)據(jù)庫,并展示了其中的表。其中,func就是存儲(chǔ)MySQL函數(shù)的表。
在MySQL中創(chuàng)建函數(shù)時(shí),可以選擇將其保存在哪個(gè)數(shù)據(jù)庫中,如果沒有指定,則默認(rèn)保存在mysql數(shù)據(jù)庫中,func表中。
除了可以查看func表以外,我們還可以使用show function status命令來查看當(dāng)前MySQL實(shí)例中的所有函數(shù)及其狀態(tài),其中就包括函數(shù)的保存位置。
mysql>show function status; +---------------+-------------+-----------------+------------+----------------------+----------------------+----------------------+ | Db | Name | Type | Definer | Modified | Created | Security_type | +---------------+-------------+-----------------+------------+----------------------+----------------------+----------------------+ | INFORMATION_SCHEMA | CHARACTER_SETS | SYSTEM | | 2022-08-08 03:58:36 | 2022-08-08 03:58:36 | DEFINER | | INFORMATION_SCHEMA | COLLATIONS | SYSTEM | | 2022-08-08 03:58:36 | 2022-08-08 03:58:36 | DEFINER | | INFORMATION_SCHEMA | COLLATION_CHARACTER_SET_APPLICABILITY | SYSTEM | | 2022-08-08 03:58:36 | 2022-08-08 03:58:36 | DEFINER | | INFORMATION_SCHEMA | COLUMNS | SYSTEM | | 2022-08-08 03:58:36 | 2022-08-08 03:58:36 | DEFINER | | INFORMATION_SCHEMA | COLUMN_PRIVILEGES | SYSTEM | | 2022-08-08 03:58:36 | 2022-08-08 03:58:36 | DEFINER | ...省略部分輸出... | mysql | t | FUNCTION | test@% | 2022-08-08 12:45:15 | 2022-08-08 12:45:15 | NO_SECURITY_TYPE | +-------------------------+------------+---------------------+------------+-----------------------+-----------------------+-----------------------+ 44 rows in set (0.00 sec)
綜上所述,MySQL函數(shù)是保存在系統(tǒng)數(shù)據(jù)庫mysql的func表中的,使用show function status命令可以查看函數(shù)的保存位置。