Bagaimana saya bisa melihat daftar prosedur tersimpan atau fungsi yang tersimpan di baris perintah mysql suka show tables;
atau show databases;
perintah.
Bagaimana saya bisa melihat daftar prosedur tersimpan atau fungsi yang tersimpan di baris perintah mysql suka show tables;
atau show databases;
perintah.
Jawaban:
show procedure status
akan menunjukkan kepada Anda prosedur yang tersimpan.
show create procedure MY_PROC
akan menunjukkan kepada Anda definisi prosedur. Dan
help show
akan menampilkan semua opsi yang tersedia untuk show
perintah.
Untuk prosedur tampilan dalam nama bijaksana
select name from mysql.proc
kode di bawah ini digunakan untuk membuat daftar semua prosedur dan kode di bawah ini memberikan hasil yang sama dengan menunjukkan status prosedur
select * from mysql.proc
select db,name,type from mysql.proc where db<>'sys';
sedikit lebih banyak info, dan lebih sedikit sistem bawaan kruft.
Cara yang lebih spesifik:
SHOW PROCEDURE STATUS
WHERE Db = DATABASE() AND Type = 'PROCEDURE'
Seperti disebutkan di atas,
show procedure status;
Memang akan menampilkan daftar prosedur, tetapi menunjukkan semuanya , di seluruh server.
Jika Anda hanya ingin melihat yang ada di satu basis data, coba ini:
SHOW PROCEDURE STATUS WHERE Db = 'databasename';
Preferensi saya adalah untuk sesuatu yang:
Menjahit bersama dari jawaban lain di utas ini, saya berakhir dengan
select
name, type
from
mysql.proc
where
db = database()
order by
type, name;
... yang mengakhiri Anda dengan hasil yang terlihat seperti ini:
mysql> select name, type from mysql.proc where db = database() order by type, name;
+------------------------------+-----------+
| name | type |
+------------------------------+-----------+
| get_oldest_to_scan | FUNCTION |
| get_language_prevalence | PROCEDURE |
| get_top_repos_by_user | PROCEDURE |
| get_user_language_prevalence | PROCEDURE |
+------------------------------+-----------+
4 rows in set (0.30 sec)
Gunakan ini:
SHOW PROCEDURE STATUS;
Menunjukkan semua prosedur yang tersimpan:
SHOW PROCEDURE STATUS;
Memperlihatkan semua fungsi:
SHOW FUNCTION STATUS;
Menunjukkan definisi prosedur yang ditentukan:
SHOW CREATE PROCEDURE [PROC_NAME];
Menampilkan semua prosedur dari basis data yang diberikan:
SHOW PROCEDURE STATUS WHERE Db = '[db_name]';
Variasi pada posting Praveenkumar_V:
SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'PROCEDURE';
SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'FUNCTION';
..dan ini karena saya perlu menghemat waktu setelah melakukan pembersihan:
SELECT CONCAT(
"GRANT EXECUTE ON PROCEDURE `"
,`name`
,"` TO username@'%'; -- "
,`comment`
)
FROM mysql.proc
WHERE db = 'dbname'
AND `type` = 'PROCEDURE';
SELECT CONCAT(
"GRANT EXECUTE ON FUNCTION `"
,`name`
,"` TO username@'%'; -- "
,`comment`
)
FROM mysql.proc
WHERE db = 'dbname'
AND `type` = 'FUNCTION';
Untuk menunjukkan milik Anda:
SELECT
db, type, specific_name, param_list, returns
FROM
mysql.proc
WHERE
definer LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'));
SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='database_name'
Jika Anda ingin membuat daftar Prosedur Store untuk Database Pilihan Saat Ini,
SHOW PROCEDURE STATUS WHERE Db = DATABASE();
itu akan mendaftar Rutinitas berdasarkan pada Database yang dipilih saat ini
DIPERBARUI untuk mencantumkan fungsi dalam basis data Anda
select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="FUNCTION";
untuk daftar prosedur rutin / toko di database Anda,
select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="PROCEDURE";
untuk membuat daftar tabel di database Anda,
select * from information_schema.TABLES WHERE TABLE_TYPE="BASE TABLE" AND TABLE_SCHEMA="YOUR DATABASE NAME";
untuk daftar tampilan dalam database Anda,
metode 1:
select * from information_schema.TABLES WHERE TABLE_TYPE="VIEW" AND TABLE_SCHEMA="YOUR DATABASE NAME";
metode 2:
select * from information_schema.VIEWS WHERE TABLE_SCHEMA="YOUR DATABASE NAME";
Render favorit saya dari daftar prosedur database saat ini: nama, daftar parameter, komentar
SELECT specific_name AS name, param_list AS params, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'PROCEDURE';
Tambahkan pengembalian untuk fungsi:
SELECT specific_name AS name, param_list AS params, `returns`, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'FUNCTION';
Daftar pengguna ini prosedur dan fungsi untuk semua database :
SELECT
`ROUTINE_SCHEMA` AS `database`
,`ROUTINE_TYPE` AS `type`
,`SPECIFIC_NAME` AS `name`
,`DTD_IDENTIFIER` AS `data_type`
FROM
`INFORMATION_SCHEMA`.`ROUTINES`
WHERE
`definer` LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'))
ORDER BY
`database`
,`type`
,`name`
;
Daftar pengguna ini prosedur dan fungsi untuk database yang digunakan :
SELECT
`ROUTINE_SCHEMA` AS `database`
,`ROUTINE_TYPE` AS `type`
,`SPECIFIC_NAME` AS `name`
,`DTD_IDENTIFIER` AS `data_type`
FROM
`INFORMATION_SCHEMA`.`ROUTINES`
WHERE
`definer` LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'))
AND
`ROUTINE_SCHEMA` = DATABASE()
ORDER BY
`type`
,`name`
;
object_name(@@procid)
dalam SSMS hal seperti ini di MySql?