Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

यह जांचने के 5 तरीके हैं कि MySQL में कोई तालिका मौजूद है या नहीं

यह जांचने के पांच तरीके यहां दिए गए हैं कि कोई तालिका MySQL डेटाबेस में मौजूद है या नहीं।

table_exists() प्रक्रिया

MySQL में, sys.table_exists() संग्रहीत कार्यविधि परीक्षण करती है कि क्या दी गई तालिका एक नियमित तालिका के रूप में मौजूद है, एक TEMPORARY तालिका, या एक दृश्य। प्रक्रिया तालिका प्रकार को OUT . में लौटाती है पैरामीटर।

उदाहरण:

CALL sys.table_exists('Music', 'Albums', @table_type); 
SELECT @table_type;

परिणाम:

+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+

ध्यान दें कि यदि दिए गए नाम के साथ एक अस्थायी और एक स्थायी तालिका मौजूद है, TEMPORARY लौटा दिया गया है।

information_schema.TABLES टेबल

तालिका मौजूद है या नहीं यह जांचने का दूसरा तरीका है information_schema.TABLES . को क्वेरी करना तालिका:

SELECT 
   TABLE_SCHEMA, 
   TABLE_NAME,
   TABLE_TYPE
FROM 
   information_schema.TABLES 
WHERE 
   TABLE_SCHEMA LIKE 'music'    AND 
	TABLE_TYPE LIKE 'BASE TABLE' AND
	TABLE_NAME = 'Artists';

परिणाम:

+--------------+------------+------------+
| TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE |
+--------------+------------+------------+
| Music        | Artists    | BASE TABLE |
+--------------+------------+------------+

इस मामले में, मैंने Artists . नामक आधार तालिका लौटा दी music . नामक डेटाबेस से . TABLE_SCHEMA . द्वारा परिणामों को फ़िल्टर किए बिना इसे क्वेरी करना सभी डेटाबेस से बेस टेबल लौटाता है। TABLE_TYPE . द्वारा फ़िल्टर किए बिना इसे क्वेरी करना सभी प्रकार की तालिकाएँ लौटाता है।

अगर हमें वह सारी जानकारी नहीं चाहिए, तो हम यह कर सकते हैं:

SELECT EXISTS (
    SELECT 
        TABLE_NAME
    FROM 
    information_schema.TABLES 
    WHERE 
    TABLE_SCHEMA LIKE 'music' AND 
        TABLE_TYPE LIKE 'BASE TABLE' AND
        TABLE_NAME = 'Artists'
    );

परिणाम:

1

या हम गिनती प्राप्त कर सकते हैं:

SELECT COUNT(TABLE_NAME)
FROM 
   information_schema.TABLES 
WHERE 
   TABLE_SCHEMA LIKE 'music' AND 
	TABLE_TYPE LIKE 'BASE TABLE' AND
	TABLE_NAME = 'Artists';

परिणाम:

+-------------------+
| COUNT(TABLE_NAME) |
+-------------------+
|                 1 |
+-------------------+

SHOW TABLES कमांड

SHOW TABLES कमांड गैर-TEMPORARYको सूचीबद्ध करता है किसी दिए गए MySQL डेटाबेस में तालिकाएँ, क्रम और दृश्य। हम WHERE . का उपयोग कर सकते हैं इसे किसी दिए गए प्रकार तक सीमित करने के लिए खंड।

हम FULL . का भी उपयोग कर सकते हैं प्रकार प्रदर्शित करने वाला दूसरा कॉलम लौटाने के लिए संशोधक:

SHOW FULL TABLES
WHERE Table_Type LIKE 'BASE TABLE'
AND Tables_in_music LIKE 'Albums';

परिणाम:

+-----------------+------------+
| Tables_in_music | Table_type |
+-----------------+------------+
| Albums          | BASE TABLE |
+-----------------+------------+

इस मामले में डेटाबेस का नाम music है , और इसलिए पहला कॉलम Tables_in_music . है ।

SHOW TABLE STATUS कमांड

MySQL में, SHOW TABLE STATUS कमांड SHOW TABLES . के समान है कमांड लेकिन प्रत्येक के बारे में अधिक व्यापक जानकारी प्रदान करता है (गैर-TEMPORARY ) टेबल।

उदाहरण:

SHOW TABLE STATUS
FROM Music
WHERE Name = 'Albums';

परिणाम:

+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
| Name   | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time | Collation          | Checksum | Create_options | Comment |
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
| Albums | InnoDB |      10 | Dynamic    |   20 |            819 |       16384 |               0 |        32768 |         0 |             21 | 2021-11-13 12:56:02 | 2021-11-13 12:56:13 | NULL       | utf8mb4_0900_ai_ci |     NULL |                |         |
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+

mysqlshow ग्राहक

MySQL डेटाबेस में तालिकाओं की जाँच करने का दूसरा तरीका mysqlshow . का उपयोग करना है ग्राहक।

इस उपयोगिता का उपयोग करने के लिए, कमांड लाइन प्रॉम्प्ट/टर्मिनल विंडो खोलें और निम्नलिखित चलाएँ:

mysqlshow --user root --password music;

music . को बदलना सुनिश्चित करें उस डेटाबेस के साथ जिसमें आप रुचि रखते हैं, और root लागू उपयोगकर्ता के साथ। --password उपयोगकर्ता को पासवर्ड के लिए संकेत दिए जाने में बिट परिणाम।

परिणाम:

Enter password: 
Database: music
+----------------+
|     Tables     |
+----------------+
| Albums         |
| Artists        |
| Genres         |
| valbumsartists |
| valbumsgenres  |
| vallalbums     |
| vallartists    |
| vallgenres     |
+----------------+

mysqlshow क्लाइंट व्यू और टेबल लौटाता है।

आउटपुट केवल उन डेटाबेस, टेबल या कॉलम के नाम प्रदर्शित करता है जिनके लिए उपयोगकर्ता के पास कुछ विशेषाधिकार हैं।

यदि कोई डेटाबेस नहीं दिया गया है तो सभी मिलान करने वाले डेटाबेस दिखाए जाते हैं। यदि कोई तालिका नहीं दी गई है, तो डेटाबेस में सभी मिलान करने वाली तालिकाएँ दिखाई जाती हैं। यदि कोई कॉलम नहीं दिया गया है, तो तालिका में सभी मेल खाने वाले कॉलम और कॉलम प्रकार दिखाए जाते हैं।

जांचें कि कोई तालिका बनाने से पहले से मौजूद है या नहीं

यदि आपको तालिका बनाने की आवश्यकता है, यदि वह मौजूद नहीं है, तो आप IF NOT EXISTS का उपयोग कर सकते हैं CREATE TABLE का खंड बयान। यदि तालिका मौजूद नहीं है, तो इसे बनाया जाएगा। अगर यह पहले से मौजूद है, तो इसे नहीं बनाया जाएगा।

उदाहरण के लिए देखें कि कैसे एक टेबल को MySQL में बनाने से पहले पहले से मौजूद है या नहीं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक्सेल फ़ाइल को MySQL डेटाबेस में कैसे आयात करें?

  2. mysql डेटाबेस में डुप्लिकेट प्रविष्टि से बचने का सबसे अच्छा तरीका

  3. अज्ञात कॉलम जहां क्लॉज

  4. डेटाबेस सुरक्षा 101:ओपन सोर्स डेटाबेस में सुरक्षा

  5. MySql प्रक्रिया में मानों के माध्यम से एक स्ट्रिंग और लूप को विभाजित करें