MySQL में, SERIAL और AUTO_INCREMENT दोनों का उपयोग किसी अनुक्रम को किसी फ़ील्ड के लिए डिफ़ॉल्ट मान के रूप में परिभाषित करने के लिए किया जाता है। लेकिन वे तकनीकी रूप से एक दूसरे से अलग हैं।
AUTO_INCREMENT विशेषता BIT और DECIMAL को छोड़कर सभी संख्यात्मक डेटा प्रकारों द्वारा समर्थित है। प्रति तालिका केवल एक AUTO_INCREMENT फ़ील्ड हो सकती है और एक तालिका में AUTO_INCREMENT फ़ील्ड द्वारा उत्पन्न अनुक्रम का उपयोग किसी अन्य तालिका में नहीं किया जा सकता है।
इस विशेषता के लिए आवश्यक है कि अनुक्रम में कोई डुप्लिकेट न हो यह सुनिश्चित करने के लिए फ़ील्ड पर एक अद्वितीय अनुक्रमणिका मौजूद है। अनुक्रम डिफ़ॉल्ट रूप से 1 से शुरू होगा और प्रत्येक प्रविष्टि के लिए 1 से वृद्धि होगी।
उदाहरण
mysql> Create Table Student(Student_id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Name Varchar(20)); Query OK, 0 rows affected (0.18 sec)
उपरोक्त क्वेरी छात्र_आईडी 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 जैसे इंटरजर न्यूमेरिक प्रकार सीरियल डिफॉल्ट वैल्यू कीवर्ड का समर्थन करते हैं।
उदाहरण
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)