MySQL-এ দুই কলামকে কম্পোজিট প্রাইমারি কী বানিয়ে একটিকে অটো-ইনক্রিমেন্ট করা শুধু MyISAM স্টোরেজ ইঞ্জিনে সম্ভব।
উদাহরণ
mysql> CREATE TABLE TwoPrimaryKeyTableDemo (
-> Result ENUM('First','Second','Third','Fail') NOT NULL,
-> StudentId INT NOT NULL AUTO_INCREMENT,
-> StudentName VARCHAR(200) NOT NULL,
-> PRIMARY KEY(Result, StudentId)
-> ) ENGINE=MyISAM;
Query OK, 0 rows affected (0.20 sec)
ডেটা ইনসার্ট:
mysql> INSERT INTO TwoPrimaryKeyTableDemo(StudentName, Result) VALUES('John', 'Fail');
mysql> INSERT INTO TwoPrimaryKeyTableDemo(StudentName, Result) VALUES('Carol', 'First');
mysql> INSERT INTO TwoPrimaryKeyTableDemo(StudentName, Result) VALUES('Smith', 'Third');
mysql> INSERT INTO TwoPrimaryKeyTableDemo(StudentName, Result) VALUES('Johnson', 'Second');
mysql> INSERT INTO TwoPrimaryKeyTableDemo(StudentName, Result) VALUES('Johnson', 'Third');
mysql> INSERT INTO TwoPrimaryKeyTableDemo(StudentName, Result) VALUES('Carol', 'Second');
mysql> INSERT INTO TwoPrimaryKeyTableDemo(StudentName, Result) VALUES('Carol', 'Fail');
ORDER BY StudentId, Result দিয়ে দেখি:
mysql> SELECT * FROM TwoPrimaryKeyTableDemo ORDER BY StudentId, Result;
+--------+-----------+-------------+ | Result | StudentId | StudentName | +--------+-----------+-------------+ | First | 1 | Carol | | Second | 1 | Johnson | | Third | 1 | Smith | | Fail | 1 | John | | Second | 2 | Carol | | Third | 2 | Johnson | | Fail | 2 | Carol | +--------+-----------+-------------+ 7 rows in set (0.00 sec)
দেখা যাচ্ছে Result গ্রুপ অনুযায়ী StudentId অটো-ইনক্রিমেন্ট হচ্ছে (১, ১, ১, ১, ২, ২, ২)। InnoDB-এ এটি সমর্থিত নয়।