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


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.