কম্পিউটার

MySQL INSERT MAX()+1 বাস্তবায়ন করবেন?


এর জন্য আপনাকে COALESCE() ফাংশন ব্যবহার করতে হবে। সিনট্যাক্স নিম্নরূপ:

INSERT INTO yourTableName(yourColumnName1,yourColumnName2)
SELECT 1 + COALESCE((SELECT MAX(yourColumnName1) FROM yourTableName WHERE yourColumnName2=’yourValue’), 0), ’yourValue’;

উপরের সিনট্যাক্স বুঝতে, আসুন একটি টেবিল তৈরি করি। একটি টেবিল তৈরি করার প্রশ্নটি নিম্নরূপ:

mysql> create table InsertMaxPlus1Demo
   -> (
   -> Id int,
   -> Name varchar(20)
   -> );
Query OK, 0 rows affected (1.27 sec)

এখন আপনি insert কমান্ড ব্যবহার করে টেবিলে কিছু রেকর্ড সন্নিবেশ করতে পারেন। প্রশ্নটি নিম্নরূপ:

mysql> insert into InsertMaxPlus1Demo(Id,Name) values(1,'John');
Query OK, 1 row affected (0.12 sec)
mysql> insert into InsertMaxPlus1Demo(Id,Name) values(1,'Mike');
Query OK, 1 row affected (0.21 sec)
mysql> insert into InsertMaxPlus1Demo(Id,Name) values(2,'John');
Query OK, 1 row affected (0.12 sec)
mysql> insert into InsertMaxPlus1Demo(Id,Name) values(1,'Larry');
Query OK, 1 row affected (0.20 sec)
mysql> insert into InsertMaxPlus1Demo(Id,Name) values(3,'John');
Query OK, 1 row affected (0.18 sec)
mysql> insert into InsertMaxPlus1Demo(Id,Name) values(2,'David');
Query OK, 1 row affected (0.17 sec)

সিলেক্ট স্টেটমেন্ট ব্যবহার করে টেবিল থেকে সব রেকর্ড দেখান। প্রশ্নটি নিম্নরূপ:

mysql> select *from InsertMaxPlus1Demo;

নিম্নলিখিত আউটপুট:

+------+-------+
| Id   | Name  |
+------+-------+
|    1 | John  |
|    1 | Mike  |
|    2 | John  |
|    1 | Larry |
|    3 | John  |
|    2 | David |
+------+-------+
6 rows in set (0.00 sec)

এখানে MAX()+1:

সন্নিবেশ করার জন্য ক্যোয়ারী আছে
mysql> INSERT INTO InsertMaxPlus1Demo (Id, Name)
   -> SELECT 1 + coalesce((SELECT max(Id) FROM InsertMaxPlus1Demo WHERE Name='John'), 0), 'John';
Query OK, 1 row affected (0.21 sec)
Records: 1 Duplicates: 0 Warnings: 0

উপরের ক্যোয়ারী জন জন্য চেক করা হয়. এতে আইডি 3 আছে এবং রেকর্ডটি আইডি 4 দিয়ে সন্নিবেশ করা হবে।

এবার সিলেক্ট স্টেটমেন্ট ব্যবহার করে আবার টেবিল রেকর্ড চেক করুন। প্রশ্নটি নিম্নরূপ:

mysql> select *from InsertMaxPlus1Demo;

নিম্নলিখিত আউটপুট:

+------+-------+
| Id   | Name  |
+------+-------+
|    1 | John  |
|    1 | Mike  |
|    2 | John  |
|    1 | Larry |
|    3 | John  |
|    2 | David |
|    4 | John  |
+------+-------+
7 rows in set (0.00 sec)

  1. MySQL সঞ্চিত পদ্ধতিতে DELETE ক্যোয়ারী প্রয়োগ করুন

  2. MySQL ক্যোয়ারী ব্যবহার করে একটি টেবিলে দ্বিতীয় সর্বোচ্চ খুঁজুন?

  3. MySQL-এ একটি সিলেক্ট ক্যোয়ারী দিয়ে সন্নিবেশ করুন

  4. একাধিক রেকর্ড দ্রুত সন্নিবেশ করার জন্য MySQL ক্যোয়ারী