সঞ্চিত পদ্ধতি / ক্রিয়াকলাপগুলির তালিকা মাইএসকিএল কমান্ড লাইন


474

আমি কীভাবে mysql কমান্ড লাইনে show tables;বা show databases;কমান্ড সঞ্চিত পদ্ধতি বা সঞ্চিত ফাংশনগুলির তালিকা দেখতে পারি ।

উত্তর:


743
SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;

2
বর্তমান সঞ্চিত পদ্ধতির নামটি খুঁজে পাওয়ার কোনও উপায় আছে কি? আমি বিশ্বাস করি যে এটি object_name(@@procid) এসএসএমএস-এ মাইএসকিউলে এর মতো কিছু?
— xameeramir

1
যদি ব্যবহারকারীর বিশেষাধিকার রয়েছে EXECUTEবা অন্যথায়, এটি খালি তালিকা প্রদর্শন করবে।
— এমজেবি

211
show procedure status

সঞ্চিত পদ্ধতিগুলি আপনাকে প্রদর্শন করবে।

show create procedure MY_PROC

আপনাকে একটি পদ্ধতির সংজ্ঞা প্রদর্শন করবে। এবং

help show

showকমান্ডের জন্য সমস্ত উপলব্ধ বিকল্প আপনাকে প্রদর্শন করবে show


1
কোডলার যেমন উল্লেখ করেছেন, সহায়তা শো মাইএসকিএল কমান্ড লাইনের নির্দেশনা হিসাবে কাজ করে না। শো কমান্ড সম্পর্কে আরও তথ্য পেতে, সরাসরি মাইএসকিউএল ডকুমেন্টেশন পৃষ্ঠাতে যান: dev.mysql.com/doc/refman/5.1/en/show.html
— IvanD

2
ওয়েল আমি নিশ্চিত না আপনি কেন এমনটি বলছেন, সাহায্যের প্রদর্শনটি আমার পক্ষে মাইএসকিউএল 5.0.95 ব্যবহার করে সেন্টোস 6.3
— h4unt3r

যদি আপনি mysqls এর নিজস্ব কমান্ড লাইন ক্লায়েন্ট ব্যবহার করেন তবে এটি কাজ করে। আমি না, তাই আমি অনলাইন রেফারেন্সটি পছন্দ করি।
— লেধুন্ড

এটি সেরা উত্তর
— কলব ক্যানিয়ন

87

নাম অনুসারে দেখুন পদ্ধতি

select name from mysql.proc 

সমস্ত প্রক্রিয়া তালিকাবদ্ধ করতে কোডের নীচে এবং কোডের নীচে শো পদ্ধতির স্থিতি হিসাবে একই ফলাফল দেওয়া হয়

select * from mysql.proc 

4
এটি অন্যদের তুলনায় অনেক পরিষ্কার উপস্থাপনা, বিশেষত যদি আপনি একটি ছোট টার্মিনালে থাকেন। ধন্যবাদ।
— ব্যবহারকারী 1527227

আমি এই উত্তরটি select db,name,type from mysql.proc where db<>'sys';কিছুটা আরও তথ্যের জন্য এবং কম বিল্ট-ইন সিস্টেম ক্রুফ্টের জন্য তৈরি করেছি।
— পিবিএনসন

47

আরও নির্দিষ্ট উপায়:

SHOW PROCEDURE STATUS 
WHERE Db = DATABASE() AND Type = 'PROCEDURE'

4
এটি এবং '= প্রক্রিয়া' টাইপ না করেও কাজ করবে
— ব্যবহারকারী

33

উপরে উল্লিখিত,

show procedure status;

প্রকৃতপক্ষে পদ্ধতিগুলির একটি তালিকা প্রদর্শন করবে, তবে সার্ভার-প্রশস্ত তাদের সমস্ত দেখায় ।

আপনি যদি একটি একক ডাটাবেসে কেবলমাত্র দেখতে চান তবে এটি ব্যবহার করে দেখুন:

SHOW PROCEDURE STATUS WHERE Db = 'databasename';

তেমনি, ফাংশন পরিস্থিতি যেখানে Db = 'ডাটাবেসনাম' দেখান; আপনাকে ফাংশন দেয়
— ডেভিড এ গ্রে


21

আমার পছন্দটি এমন কিছুটির জন্য যা:

  1. ফাংশন এবং পদ্ধতি উভয় তালিকাবদ্ধ করে,
  2. আমাকে জানতে দিন কোনটি,
  3. পদ্ধতিগুলির নাম এবং প্রকারগুলি দেয় এবং অন্য কিছুই দেয় না ,
  4. বর্তমান ডাটাবেস দ্বারা ফিল্টার ফলাফল, বর্তমান সুনির্দিষ্ট নয়
  5. ফলাফলটি বাছাই করে

এই থ্রেডে অন্য উত্তরগুলি থেকে একসাথে সেলাই করে আমি শেষ করছি

select 
  name, type 
from 
  mysql.proc 
where 
  db = database() 
order by 
  type, name;

... যা আপনাকে এমন ফলাফল দিয়ে শেষ করে:

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)

মন্তব্যগুলিও সহায়ক।
— ডলমেন


11

সমস্ত সঞ্চিত প্রক্রিয়া দেখায়:

SHOW PROCEDURE STATUS;

সমস্ত ফাংশন দেখায়:

SHOW FUNCTION STATUS;

নির্দিষ্ট পদ্ধতির সংজ্ঞা দেখায়:

SHOW CREATE PROCEDURE [PROC_NAME];

প্রদত্ত ডাটাবেসের সমস্ত পদ্ধতি আপনাকে দেখায়:

SHOW PROCEDURE STATUS WHERE Db = '[db_name]';

9

প্রবীণকুমার_ভি এর পোস্টে একটি প্রকরণ:

SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'PROCEDURE';
SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'FUNCTION';

.. এবং এটি কারণ কিছু গৃহকর্মের পরে আমার সময় বাঁচানোর দরকার ছিল:

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';

8

শুধু আপনার দেখানোর জন্য:

SELECT
  db, type, specific_name, param_list, returns
FROM
  mysql.proc
WHERE
  definer LIKE
  CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'));

3
কলামের নাম, টেবিলের নাম ইত্যাদিকে ছোট ক্ষেত্রে রাখার সময় সমস্ত ক্যাপগুলিতে এসকিউএল কীওয়ার্ড স্থাপন করা সাধারণ কনভেনশন।
— সাগর


5

আপনি যদি বর্তমান নির্বাচিত ডেটাবেসগুলির জন্য স্টোর পদ্ধতিটি তালিকাভুক্ত করতে চান,

SHOW PROCEDURE STATUS WHERE Db = DATABASE();

এটি বর্তমান নির্বাচিত ডাটাবেসের ভিত্তিতে রুটিনগুলি তালিকাভুক্ত করবে

আপনার ডাটাবেসে ফাংশনগুলি তালিকাবদ্ধ করতে আপডেট করা

select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="FUNCTION";

আপনার ডাটাবেসে রুটিন / স্টোর পদ্ধতিগুলি তালিকাভুক্ত করতে,

select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="PROCEDURE";

আপনার ডাটাবেসে টেবিল তালিকা করতে,

select * from information_schema.TABLES WHERE TABLE_TYPE="BASE TABLE" AND TABLE_SCHEMA="YOUR DATABASE NAME";

আপনার ডাটাবেসে ভিউ তালিকাবদ্ধ করতে,

পদ্ধতি 1:

select * from information_schema.TABLES WHERE TABLE_TYPE="VIEW" AND TABLE_SCHEMA="YOUR DATABASE NAME";

পদ্ধতি 2:

select * from information_schema.VIEWS WHERE TABLE_SCHEMA="YOUR DATABASE NAME";

1
                           show procedure status;

এই কমান্ডটি ব্যবহার করে আপনি ডাটাবেসে সমস্ত পদ্ধতি দেখতে পাবেন


0

বর্তমান ডাটাবেসের পদ্ধতি তালিকাটির জন্য আমার প্রিয় রেন্ডারিং: নাম, প্যারামিটারের তালিকা, মন্তব্য

SELECT specific_name AS name, param_list AS params, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'PROCEDURE';

ফাংশনগুলির জন্য রিটার্ন যুক্ত করুন:

SELECT specific_name AS name, param_list AS params, `returns`, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'FUNCTION';

0

সমস্ত ডাটাবেসের জন্য ব্যবহারকারীর পদ্ধতি এবং কার্য তালিকা :

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`
;

তালিকা ব্যবহারকারী এর পদ্ধতি এবং ফাংশন ব্যবহার করা ডাটাবেসের :

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`
;

-2

সমস্ত পদ্ধতির জন্য নিম্নলিখিত কোয়েরি ব্যবহার করুন:

select * from sysobjects 
where type='p'
order by crdate desc
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.