MySQL में टेबल के सभी कंस्ट्रेंट (Primary Key, Foreign Key, Unique आदि) प्रदर्शित करने के तरीके
तरीका 1: SHOW CREATE TABLE कमांड
यह सबसे सरल और लोकप्रिय तरीका है। यह पूरी CREATE TABLE स्टेटमेंट दिखाता है जिसमें सभी कंस्ट्रेंट शामिल होते हैं।
SHOW CREATE TABLE yourTableName;
तरीका 2: INFORMATION_SCHEMA.KEY_COLUMN_USAGE
यह तरीका प्रोग्रामेटिक एक्सेस के लिए बेहतर है, खासकर जब आपको केवल कंस्ट्रेंट मेटाडेटा चाहिए।
SELECT COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_COLUMN_NAME, REFERENCED_TABLE_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'yourTableName';
व्यावहारिक उदाहरण
मान लें हमारे पास ConstraintDemo टेबल पहले से मौजूद है।
तरीका 2 से कंस्ट्रेंट देखें:
mysql> SELECT COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_COLUMN_NAME, REFERENCED_TABLE_NAME
-> FROM information_schema.KEY_COLUMN_USAGE
-> WHERE TABLE_NAME = 'ConstraintDemo';
+-------------+-----------------+------------------------+-----------------------+ | COLUMN_NAME | CONSTRAINT_NAME | REFERENCED_COLUMN_NAME | REFERENCED_TABLE_NAME | +-------------+-----------------+------------------------+-----------------------+ | Id | PRIMARY | NULL | NULL | | Id | Id | NULL | NULL | +-------------+-----------------+------------------------+-----------------------+ 2 rows in set, 2 warnings (0.04 sec)
तरीका 1 से पूरी टेबल परिभाषा देखें:
mysql> SHOW CREATE TABLE ConstraintDemo;
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ConstraintDemo | CREATE TABLE `constraintdemo` (`Id` int(11) NOT NULL, `Name` varchar(100) NOT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `Id` (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | +----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
कौन सा तरीका कब उपयोग करें?
| तरीका | उपयोग केस |
|---|---|
| SHOW CREATE TABLE | त्वरित जांच, पूरी DDL देखनी हो, माइग्रेशन स्क्रिप्ट बनानी हो |
| INFORMATION_SCHEMA | एप्लीकेशन में प्रोग्रामेटिक एक्सेस, केवल कंस्ट्रेंट नाम/कॉलम चाहिए, फॉरेन की डिटेल चाहिए |
अन्य उपयोगी क्वेरी:
-- केवल फॉरेन की देखें SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'yourTable' AND CONSTRAINT_TYPE = 'FOREIGN KEY'; -- सभी कंस्ट्रेंट प्रकार देखें SELECT CONSTRAINT_TYPE, COUNT(*) FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'yourTable' GROUP BY CONSTRAINT_TYPE;