Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

MySQL में, SERIAL और AUTO_INCREMENT में क्या अंतर है?

<घंटा/>

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)

  1. MySQL में 'AND' और '&&' के बीच अंतर?

    नोट:AND और &&के बीच केवल एक अंतर है कि AND एक मानक है जबकि &&स्वामित्व सिंटैक्स है। उपरोक्त कथन को छोड़कर, AND और &&में कोई अंतर नहीं है। आइए सभी शर्तों को देखें। AND और &&का परिणाम हमेशा 1 या 0 होगा। जैसा कि हम जानते हैं कि AND और &&दोनों लॉजिकल ऑपरेटर हैं, यदि एक से अधिक ऑपरेंड हैं और उनमें से क

  1. MySQL में TINYINT(1) और बूलियन में क्या अंतर है?

    टिन्यिनट (1) और बूलियन के बीच कोई अंतर नहीं है। कीवर्ड बूल या बूलियन आंतरिक रूप से TINYINT(1) में परिवर्तित हो जाता है या हम कह सकते हैं कि बूल या बूलियन TINYINT(1) का पर्याय हैं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable(ismared Boolean);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.77 सेकंड) आइए तालि

  1. MySQL में !=NULL और IS NOT NULL में क्या अंतर है?

    यदि आप किसी मान की तुलना !=NULL से करते हैं तो यह NULL देता है। तो, !=NULL अर्थहीन है। !=NULL और IS NOT NULL के बीच अंतर देखने के लिए, आइए पहले एक टेबल बनाएं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1970 (वैल्यू इंट);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टे