मैं किसी दिए गए इंजन, जैसे InnoDB, MyISAM, FEDERATED के साथ MySQL में सभी तालिकाओं को कैसे दिखाऊँगा?
मैं किसी दिए गए इंजन, जैसे InnoDB, MyISAM, FEDERATED के साथ MySQL में सभी तालिकाओं को कैसे दिखाऊँगा?
जवाबों:
उपयोग INFORMATION_SCHEMA.TABLES
तालिका:
SELECT table_name FROM INFORMATION_SCHEMA.TABLES
WHERE engine = 'InnoDB'
यदि आप एकल डेटाबेस से परिणाम चाहते हैं
SELECT TABLE_NAME FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'dbname' AND engine = 'InnoDB';
अन्य उदाहरण यहाँ।
इंजन द्वारा सभी टेबल (सिस्टम टेबल को छोड़कर):
SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine
FROM information_schema.TABLES
WHERE ENGINE = 'MyISAM' -- or InnoDB or whatever
AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');
इंजन को छोड़कर सभी टेबल (सिस्टम टेबल को छोड़कर):
SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine
FROM information_schema.TABLES
WHERE ENGINE != 'MyISAM' -- or InnoDB or whatever
AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');
अगर कुछ में समस्या है और देखना चाहते हैं कि डीबी विशिष्ट इंजन के साथ तालिकाओं में है
SELECT
(SELECT group_concat(TABLE_NAME)
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database1'
AND engine = 'MyIsam'
) as database1,
(SELECT group_concat(TABLE_NAME)
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database2'
AND engine = 'MyIsam'
) as database2,
(SELECT group_concat(TABLE_NAME)
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database3'
AND engine = 'MyIsam'
) as database3;
सादर।