MySQL-এ কোনো টেবিলের কোন কলামে AUTO_INCREMENT আছে কিনা জানতে INFORMATION_SCHEMA.COLUMNS-এর EXTRA কলাম চেক করুন।
সিনট্যাক্স
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'database_name'
AND TABLE_NAME = 'table_name'
AND EXTRA LIKE '%auto_increment%';
উদাহরণ
CREATE TABLE auto_inc_table_demo (
client_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
client_name VARCHAR(20),
client_age INT,
client_address VARCHAR(100),
client_country VARCHAR(100)
);
ক্যোয়ারি
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test'
AND TABLE_NAME = 'auto_inc_table_demo'
AND EXTRA LIKE '%auto_increment%';
ফলাফল
+-------------+
| COLUMN_NAME |
+-------------+
| client_id |
+-------------+
সব AUTO_INCREMENT কলাম লিস্ট করা (ডেটাবেস-ওয়াইড)
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE EXTRA LIKE '%auto_increment%'
AND TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
ORDER BY TABLE_SCHEMA, TABLE_NAME;
নমুনা আউটপুট
+--------------+-------------------+-------------+-----------+-----------------+
| TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | DATA_TYPE | COLUMN_TYPE |
+--------------+-------------------+-------------+-----------+-----------------+
| test | auto_inc_table_demo| client_id | int | int(11) |
| test | users | id | bigint | bigint(20) |
| business | orders | order_id | int | int(11) |
+--------------+-------------------+-------------+-----------+-----------------+
DESC/SHOW COLUMNS বিকল্প
DESC auto_inc_table_demo;
-- Extra কলামে 'auto_increment' থাকবে
SHOW COLUMNS FROM auto_inc_table_demo LIKE 'client_id';
-- Extra: auto_increment
প্রোগ্রাম্যাটিক চেক (JDBC/Python)
-- JDBC DatabaseMetaData
ResultSet rs = meta.getColumns(null, "test", "auto_inc_table_demo", "client_id");
if (rs.next()) {
String isAutoInc = rs.getString("IS_AUTOINCREMENT"); // "YES" বা "NO"
}
দ্রষ্টব্য
EXTRAকলামেauto_incrementস্ট্রিং থাকে (লোয়ারকেস)LIKE '%auto_increment%'কেস-ইনসেনসিটিভ (ডিফল্ট কোলেশন)- একটি টেবিলে শুধু একটা
AUTO_INCREMENTকলাম থাকতে পারে