किस कॉलम पर AUTO_INCREMENT है, यह जांचने के लिए INFORMATION_SCHEMA.COLUMNS क्वेरी करें
EXTRA कॉलम में auto_increment स्ट्रिंग होती है यदि कॉलम ऑटो-इन्क्रीमेंट है।
सिंटैक्स
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'your_database' AND TABLE_NAME = 'your_table' AND EXTRA LIKE '%auto_increment%';
उदाहरण
CREATE TABLE autoIncrementTableDemo (
ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName VARCHAR(20),
ClientAge INT,
ClientAddress VARCHAR(100),
ClientCountryName VARCHAR(100)
);
क्वेरी
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'autoIncrementTableDemo' AND EXTRA LIKE '%auto_increment%';
आउटपुट
+-------------+ | COLUMN_NAME | +-------------+ | ClientId | +-------------+
वैकल्पिक: SHOW COLUMNS
SHOW COLUMNS FROM autoIncrementTableDemo LIKE 'ClientId';
+----------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+---------+------+-----+---------+----------------+ | ClientId | int(11) | NO | PRI | NULL | auto_increment | +----------+---------+------+-----+---------+----------------+
प्रोग्रामेटिक उपयोग (JDBC)
DatabaseMetaData meta = conn.getMetaData();
ResultSet cols = meta.getColumns(null, "test", "autoIncrementTableDemo", "ClientId");
if (cols.next()) {
String isAutoInc = cols.getString("IS_AUTOINCREMENT"); // "YES" या "NO"
}
नोट
EXTRAमें अन्य मान भी हो सकते हैं:DEFAULT_GENERATED(MySQL 8.0+ जनरेटेड कॉलम),VIRTUAL_GENERATED,STORED_GENERATED।LIKE '%auto_increment%'केस-इनसेंसिटिव है (डिफ़ॉल्ट कॉलेशन)।