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

MySQL-এ SHOW TABLE ব্যবহার না করেই AUTO_INCREMENT ভ্যালু দেখা (INFORMATION_SCHEMA)

MySQL-এ কোনো টেবিলের পরবর্তী AUTO_INCREMENT মান জানতে SHOW TABLE STATUS ছাড়া INFORMATION_SCHEMA.TABLES ক্যোয়ারি করুন।

সিনট্যাক্স

SELECT AUTO_INCREMENT AS next_auto_increment_value
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'database_name'
  AND TABLE_NAME = 'table_name';

উদাহরণ

CREATE TABLE view_auto_inc_demo (
    student_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    student_name VARCHAR(20)
);

INSERT INTO view_auto_inc_demo (student_name) VALUES 
('Ramit'), ('Bob'), ('Chris'), ('Robert'), ('John');

ক্যোয়ারি

SELECT AUTO_INCREMENT AS NextAutoIncrementValue
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'test'
  AND TABLE_NAME = 'view_auto_inc_demo';

ফলাফল

+------------------------+
| NextAutoIncrementValue |
+------------------------+
| 6                      |
+------------------------+

৫টি সারি ইনসার্ট করা হয়েছে, তাই পরবর্তী ID হবে ৬।

SHOW TABLE STATUS বিকল্প

SHOW TABLE STATUS LIKE 'view_auto_inc_demo';\G

\G দিয়ে ভার্টিকাল ফরম্যাটে দেখুন। Auto_increment ফিল্ডে মান থাকবে।

AUTO_INCREMENT মান রিসেট/সেট করা

ALTER TABLE view_auto_inc_demo AUTO_INCREMENT = 1000;

InnoDB নোট

  • InnoDB-এ AUTO_INCREMENT কাউন্টার মেমরিতে থাকে, রিস্টার্টে রিসেট হতে পারে (MAX(id)+1)
  • innodb_autoinc_lock_mode কনফিগারেশন লকিং আচরণ নিয়ন্ত্রণ করে
  • গ্যাপ (gap) থাকা স্বাভাবিক (DELETE, ROLLBACK, FAILED INSERT)

প্রোগ্রাম্যাটিকলি পাওয়া (JDBC/Python/etc)

-- JDBC
DatabaseMetaData meta = con.getMetaData();
ResultSet rs = meta.getTables(null, "test", "view_auto_inc_demo", null);
if (rs.next()) {
    // MySQL-স্পেসিফিক: getColumns বা getIndexInfo থেকে নয়, কাস্টম ক্যোয়ারি লাগে
}

সাধারণত সরাসরি SQL ক্যোয়ারি সেরা।

  1. MySQL-এ GROUP BY + MAX() ব্যবহার করে প্রতিটি গ্রুপের সর্বোচ্চ মান বের করা

  2. MySQL-এ CREATE TABLE-এ AUTO_INCREMENT-এর ম্যানুয়াল স্টার্ট ভ্যালু সেট করা (ENGINE=MyISAM)

  3. MySQL-এ টেবিলে নেই এমন মানগুলো কোয়েরি করে বের করা (UNION ALL + NOT EXISTS)

  4. MySQL-এ INSERT INTO SELECT ব্যবহার করে অন্য টেবিল থেকে ডেটা কপি করা