MySQL-এ SERIAL এবং AUTO_INCREMENT উভয়ই একটি ফিল্ডের জন্য ডিফল্ট মান হিসেবে সিকোয়েন্স সংজ্ঞায়িত করতে ব্যবহৃত হয়। কিন্তু техনিকালভাবে সেগুলো একে অপরের থেকে আলাদা।
AUTO_INCREMENT অ্যাট্রিবিউট BIT এবং DECIMAL ছাড়া সব সংখ্যাসূচক ডেটা টাইপের জন্য সমর্থিত। একটি টেবিলে শুধু একটি AUTO_INCREMENT ফিল্ড থাকতে পারে এবং একটি টেবিলের AUTO_INCREMENT ফিল্ড দ্বারা জেনারেটেড সিকোয়েন্স অন্য কোনো টেবিলে ব্যবহার করা যায় না।
এই অ্যাট্রিবিউটের জন্য ফিল্ডে UNIQUE इंडেক্স থাকতে হয় যাতে সিকোয়েন্সে ডুপ্লিকেট না থাকে। সিকোয়েন্স ডিফল্টভাবে ১ থেকে শুরু হয় এবং প্রতিটি ইনসার্টের জন্য ১ করে বৃদ্ধি পায়।
উদাহরণ
mysql> Create Table Student(Student_id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Name Varchar(20)); Query OK, 0 rows affected (0.18 sec)
উপরোক্ত কোয়ারিটি Student_id কে AUTO_INCREMENT ঘোষণা করে।
mysql> Insert Into Student(Name) values('RAM'),('SHYAM'); Query OK, 2 rows affected (0.06 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> Select * from Student; +------------+-------+ | Student_id | Name | +------------+-------+ | 1 | RAM | | 2 | SHYAM | +------------+-------+ 2 rows in set (0.00 sec) mysql> Show Create Table Student\G *************************** 1. row *************************** Table: Student Create Table: CREATE TABLE `student` ( `Student_id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(20) DEFAULT NULL, PRIMARY KEY (`Student_id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 1 row in set (0.00 sec)অন্যদিকে, SERIAL DEFAULT VALUE হল NOT NULL AUTO_INCREMENT UNIQUE KEY-এর সংক্ষিপ্ত রূপ। TINYINT, SMALLINT, MEDIUMINT, INT, এবং BIGINT-এর মতো পূর্ণসংখ্যা সংখ্যাসূচক টাইপ SERIAL DEFAULT VALUE কীওয়ার্ড সমর্থন করে।
উদাহরণ
mysql> Create Table Student_serial(Student_id SERIAL, Name VArchar(20)); Query OK, 0 rows affected (0.17 sec) mysql> Insert into Student_serial(Name) values('RAM'),('SHYAM'); Query OK, 2 rows affected (0.12 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> Select * from Student_serial; +------------+-------+ | Student_id | Name | +------------+-------+ | 1 | RAM | | 2 | SHYAM | +------------+-------+ 2 rows in set (0.00 sec) mysql> Show Create Table Student_serial\G *************************** 1. row *************************** Table: Student_serial Create Table: CREATE TABLE `student_serial` ( `Student_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `Name` varchar(20) DEFAULT NULL, UNIQUE KEY `Student_id` (`Student_id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 1 row in set (0.00 sec)