কম্পিউটার টিউটোরিয়াল

MySQL-এ কোনো কলাম AUTO_INCREMENT কিনা চেক করা (INFORMATION_SCHEMA.COLUMNS)

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 কলাম থাকতে পারে
  1. phpMyAdmin-এ MySQL কলামে AUTO_INCREMENT যোগ করা

  2. MySQL-এ নির্দিষ্ট কলাম নামে টেবিল খুঁজে বের করা

  3. MySQL সিকোয়েন্স তৈরি (How to Create a MySQL Sequence)

  4. MySQL AUTO_INCREMENT উদাহরণসহ (MySQL AUTO_INCREMENT with Examples)