MySQL में INFORMATION_SCHEMA.TABLES और CASE WHEN का उपयोग करके बूलियन परिणाम (हां/नहीं) के रूप में टेबल अस्तित्व जांच सकते हैं।
सिंटैक्स
SELECT MAX(CASE
WHEN TABLE_NAME = 'टेबल_नाम' THEN 'Yes (TRUE)'
ELSE 'No (FALSE)'
END) AS isTableExists
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = DATABASE();
उदाहरण
1. टेबल बनाएं
mysql> CREATE TABLE DemoTable (
-> Id INT,
-> Name VARCHAR(20)
-> );
2. डेटा डालें
mysql> INSERT INTO DemoTable VALUES(101, 'Chris'); mysql> INSERT INTO DemoTable VALUES(102, 'David');
3. टेबल अस्तित्व जांचें
mysql> SELECT MAX(CASE
-> WHEN TABLE_NAME = 'DemoTable' THEN 'Yes the table exist(TRUE)'
-> ELSE 'No(FALSE)'
-> END) AS isTableExists
-> FROM INFORMATION_SCHEMA.TABLES;
4. परिणाम
+-------------------------------+ | isTableExists | +-------------------------------+ | Yes the table exist(TRUE) | +-------------------------------+
बेहतर विकल्प
1. सरल EXISTS जांच
SELECT EXISTS(
SELECT 1 FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'DemoTable'
) AS table_exists;
+--------------+ | table_exists | +--------------+ | 1 | -- 1 = TRUE, 0 = FALSE +--------------+
2. SHOW TABLES LIKE
SHOW TABLES LIKE 'DemoTable';
3. स्टोर्ड प्रोसीजर में उपयोग
DELIMITER $$
CREATE PROCEDURE CheckTableExists(IN tbl_name VARCHAR(64), OUT exists BOOLEAN)
BEGIN
SELECT COUNT(*) > 0 INTO exists
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = tbl_name;
END $$
DELIMITER ;
INFORMATION_SCHEMA.TABLES कॉलम
TABLE_SCHEMA- डेटाबेस नामTABLE_NAME- टेबल नामTABLE_TYPE- 'BASE TABLE', 'VIEW', आदिENGINE- स्टोरेज इंजन