यह जांचने के पांच तरीके यहां दिए गए हैं कि कोई तालिका 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 में बनाने से पहले पहले से मौजूद है या नहीं।