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

MySQL-এ AUTO_INCREMENT টেবিলে INSERT INTO SELECT ব্যবহার করা

AUTO_INCREMENT প্রাইমারি কী থাকা টেবিলে INSERT INTO SELECT ব্যবহার করার সময় প্রাইমারি কী মান এক্সপ্লিসিটলি দিলে সেটি গ্রহণ করা হয় (যদি ডুপ্লিকেট না হয়)।

টেবিল তৈরি

mysql> CREATE TABLE DemoTable1923 (
    UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserName VARCHAR(20)
);

INSERT INTO SELECT ব্যবহার করে ডেটা ইনসার্ট

mysql> INSERT INTO DemoTable1923 (UserId, UserName)
    SELECT 101 AS UserId, 'Chris' AS UserName;

mysql> INSERT INTO DemoTable1923 (UserId, UserName)
    SELECT 102 AS UserId, 'Robert' AS UserName;

mysql> INSERT INTO DemoTable1923 (UserId, UserName)
    SELECT 103 AS UserId, 'Sam' AS UserName;

নোট: এখানে UserId এক্সপ্লিসিটলি দেওয়া হয়েছে, তাই AUTO_INCREMENT ওভাররাইড হয়েছে।

ফলাফল যাচাই

mysql> SELECT * FROM DemoTable1923;
+--------+----------+
| UserId | UserName |
+--------+----------+
|    101 | Chris    |
|    102 | Robert   |
|    103 | Sam      |
+--------+----------+

সাধারণ নিয়ম

  • AUTO_INCREMENT কলামে মান দিয়ে ইনসার্ট করলে সেই মান ব্যবহার হয়।
  • মান না দিলে (বা NULL/0 দিলে) অটো জেনারেট হয়।
  • এক্সপ্লিসিট মান দিয়ে ইনসার্ট করলে পরবর্তী অটো-ইনক্রিমেন্ট ভ্যালু MAX(id)+1 থেকে শুরু হয়।

বিকল্প: UserId না দিয়ে ইনসার্ট

INSERT INTO DemoTable1923 (UserName)
SELECT 'Chris' UNION ALL SELECT 'Robert' UNION ALL SELECT 'Sam';

তब UserId হবে ১, ২, ৩ (AUTO_INCREMENT ডিফল্ট ১ থেকে)।

  1. Java ব্যবহার করে MySQL টেবিলে রেকর্ড সন্নিবেশ করা

  2. Java-MySQL 연동: 단일 컬럼만 INSERT하기

  3. MySQL-এ INSERT INTO SELECT এবং UNION দিয়ে একাধিক রো ইনসার্ট করা

  4. MySQL-এ LPAD() এবং COALESCE() দিয়ে প্রিসিডিং জিরো সহ আইডি জেনারেট করা