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

MySQL-এ SQL Server-এর SCOPE_IDENTITY() এর সমতুল্য ফাংশন

SQL Server-এর SCOPE_IDENTITY() ফাংশনটির MySQL-এ সমতুল্য হলো LAST_INSERT_ID()। সিনট্যাক্স নিচে দেওয়া হলো:

SELECT LAST_INSERT_ID().

এটি শেষে ইনসার্ট করা রেকর্ডের আইডি রিটার্ন করে।

এখানে আমি প্রাইমারি কী কলামসহ একটি টেবিল তৈরি করে LAST_INSERT_ID()-র ডেমো দেখাচ্ছি।

প্রথমে দুটি টেবিল তৈরি করা যাক। প্রথম টেবিল TestOnLastInsertIdDemo তৈরির কোয়েরি:

mysql> create table TestOnLastInsertIdDemo  
    -> (  
    -> StudentId int NOT NULL AUTO_INCREMENT,  
    -> PRIMARY KEY(StudentId)  
    -> ); Query OK, 0 rows affected (0.95 sec)

দ্বিতীয় টেবিল TestOnLastInsertIdDemo2 তৈরির কোয়েরি:

mysql> create table TestOnLastInsertIdDemo2  
    -> (  
    -> Id int NOT NULL AUTO_INCREMENT,  
    -> PRIMARY KEY(Id)  
    -> ); Query OK, 0 rows affected (2.79 sec)

দ্বিতীয় টেবিলে কিছু রেকর্ড ইনসার্ট করা যাক। কোয়েরিটি হলো:

mysql> insert into TestOnLastInsertIdDemo2 values(),(),(),(),(),(),(),(); Query OK, 8 rows affected (0.21 sec) Records: 8 Duplicates: 0 Warnings: 0

এখন TestOnLastInsertIdDemo2 টেবিলে একটি ট্রিগার তৈরি করা যাক। ট্রিগার তৈরির কোয়েরি:

mysql> delimiter // mysql> create trigger insertingTrigger after insert on TestOnLastInsertIdDemo  
    -> for each row begin  
    -> insert into TestOnLastInsertIdDemo2 values();  
    -> end;  
    -> // Query OK, 0 rows affected (0.19 sec) mysql> delimiter ;

যদি TestOnLastInsertIdDemo টেবিলে রেকর্ড ইনসার্ট করা হয়, তবে LAST_INSERT_ID() 1 রিটার্ন করবে। রেকর্ড ইনসার্ট করার কোয়েরি:

mysql> insert into TestOnLastInsertIdDemo values(); Query OK, 1 row affected (0.31 sec)

LAST_INSERT_ID() ফাংশন ব্যবহার করা যাক। কোয়েরিটি হলো:

mysql> select last_insert_id();

আউটপুট নিচে দেওয়া হলো:

+------------------+ | last_insert_id() | +------------------+ | 1 | +------------------+ 1 row in set (0.00 sec)

উপরের আউটপুটে 1 দেখাচ্ছে কারণ LAST_INSERT_ID() মূল টেবিল (TestOnLastInsertIdDemo)-ই বিবেচনা করে, ট্রিগারের ভেতরের টেবিল (TestOnLastInsertIdDemo2) নয়। এটি SCOPE_IDENTITY()-এর মতোই বর্তমান স্কোপের আটো-ইনক্রিমেন্ট আইডি রিটার্ন করে।

  1. PHP-তে MySQL টেবিল ডিলিট করার ফাংশন

  2. PHP-তে MySQL টেবিল তৈরির ফাংশন

  3. MySQL LIMIT ক্লজের SQL Server-এ সমতুল্য

  4. SQL Server-এ MySQL ENUM ডেটা টাইপের সমতুল্য কী?