एसक्यूएल ऑटो वृद्धि क्षेत्र
ऑटो वृद्धि क्षेत्र
ऑटो-इन्क्रीमेंट एक अद्वितीय संख्या को स्वचालित रूप से उत्पन्न करने की अनुमति देता है जब एक तालिका में एक नया रिकॉर्ड डाला जाता है।
अक्सर यह प्राथमिक कुंजी फ़ील्ड होता है जिसे हम हर बार एक नया रिकॉर्ड डालने पर स्वचालित रूप से बनाना चाहते हैं।
MySQL के लिए सिंटैक्स
निम्न SQL कथन "व्यक्तिगत" कॉलम को "व्यक्तियों" तालिका में एक ऑटो-वृद्धि प्राथमिक कुंजी फ़ील्ड के रूप में परिभाषित करता है:
CREATE TABLE Persons
(
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);
MySQL AUTO_INCREMENT
कीवर्ड का उपयोग ऑटो-इन्क्रीमेंट फीचर को करने के लिए करता है।
डिफ़ॉल्ट रूप से, के लिए प्रारंभिक मान AUTO_INCREMENT
1 है, और यह प्रत्येक नए रिकॉर्ड के लिए 1 से बढ़ जाएगा।
AUTO_INCREMENT
अनुक्रम को किसी अन्य मान से प्रारंभ करने के लिए, निम्न SQL कथन का उपयोग करें :
ALTER TABLE Persons AUTO_INCREMENT=100;
"व्यक्ति" तालिका में एक नया रिकॉर्ड डालने के लिए, हमें "व्यक्तिगत" कॉलम के लिए एक मान निर्दिष्ट करने की आवश्यकता नहीं होगी (एक अद्वितीय मान स्वचालित रूप से जोड़ा जाएगा):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
उपरोक्त SQL कथन "व्यक्ति" तालिका में एक नया रिकॉर्ड सम्मिलित करेगा। "व्यक्तिगत" कॉलम को एक अद्वितीय मान असाइन किया जाएगा। "फर्स्टनाम" कॉलम "लार्स" पर सेट किया जाएगा और "लास्टनाम" कॉलम "मोन्सन" पर सेट किया जाएगा।
SQL सर्वर के लिए सिंटैक्स
निम्न SQL कथन "व्यक्तिगत" कॉलम को "व्यक्तियों" तालिका में एक ऑटो-वृद्धि प्राथमिक कुंजी फ़ील्ड के रूप में परिभाषित करता है:
CREATE TABLE Persons
(
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS SQL सर्वर IDENTITY
ऑटो-इन्क्रीमेंट फीचर को करने के लिए कीवर्ड का उपयोग करता है।
ऊपर के उदाहरण में, के लिए प्रारंभिक मान
IDENTITY
1 है, और यह प्रत्येक नए रिकॉर्ड के लिए 1 से बढ़ जाएगा।
युक्ति: यह निर्दिष्ट करने के लिए कि "व्यक्तिगत" कॉलम मान 10 से शुरू होना चाहिए और 5 से बढ़ाना चाहिए, इसे में बदलें IDENTITY(10,5)
।
"व्यक्ति" तालिका में एक नया रिकॉर्ड डालने के लिए, हमें "व्यक्तिगत" कॉलम के लिए एक मान निर्दिष्ट करने की आवश्यकता नहीं होगी (एक अद्वितीय मान स्वचालित रूप से जोड़ा जाएगा):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
उपरोक्त SQL कथन "व्यक्ति" तालिका में एक नया रिकॉर्ड सम्मिलित करेगा। "व्यक्तिगत" कॉलम को एक अद्वितीय मान असाइन किया जाएगा। "फर्स्टनाम" कॉलम "लार्स" पर सेट किया जाएगा और "लास्टनाम" कॉलम "मोन्सन" पर सेट किया जाएगा।
एक्सेस के लिए सिंटेक्स
निम्न SQL कथन "व्यक्तिगत" कॉलम को "व्यक्तियों" तालिका में एक ऑटो-वृद्धि प्राथमिक कुंजी फ़ील्ड के रूप में परिभाषित करता है:
CREATE TABLE Persons
(
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
एमएस एक्सेस AUTOINCREMENT
ऑटो-इन्क्रीमेंट फीचर को करने के लिए कीवर्ड का उपयोग करता है।
डिफ़ॉल्ट रूप से, के लिए प्रारंभिक मान AUTOINCREMENT
1 है, और यह प्रत्येक नए रिकॉर्ड के लिए 1 से बढ़ जाएगा।
युक्ति: यह निर्दिष्ट करने के लिए कि "व्यक्तिगत" कॉलम मान 10 से शुरू होना चाहिए और 5 से वृद्धि करना चाहिए, ऑटोइनक्रिकमेंट को में बदलें
AUTOINCREMENT(10,5)
।
"व्यक्ति" तालिका में एक नया रिकॉर्ड डालने के लिए, हमें "व्यक्तिगत" कॉलम के लिए एक मान निर्दिष्ट करने की आवश्यकता नहीं होगी (एक अद्वितीय मान स्वचालित रूप से जोड़ा जाएगा):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
उपरोक्त SQL कथन "व्यक्ति" तालिका में एक नया रिकॉर्ड सम्मिलित करेगा। "व्यक्तिगत" कॉलम को एक अद्वितीय मान असाइन किया जाएगा। "फर्स्टनाम" कॉलम "लार्स" पर सेट किया जाएगा और "लास्टनाम" कॉलम "मोन्सन" पर सेट किया जाएगा।
Oracle के लिए सिंटैक्स
ओरेकल में कोड थोड़ा और मुश्किल है।
आपको अनुक्रम ऑब्जेक्ट के साथ एक ऑटो-इन्क्रीमेंट फ़ील्ड बनाना होगा (यह ऑब्जेक्ट एक संख्या अनुक्रम उत्पन्न करता है)।
निम्नलिखित CREATE SEQUENCE
वाक्यविन्यास का प्रयोग करें:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
उपरोक्त कोड seq_person नामक अनुक्रम ऑब्जेक्ट बनाता है, जो 1 से शुरू होता है और 1 से बढ़ता है। यह प्रदर्शन के लिए 10 मानों तक कैश भी करेगा। कैशे विकल्प निर्दिष्ट करता है कि तेज़ एक्सेस के लिए मेमोरी में कितने अनुक्रम मान संग्रहीत किए जाएंगे।
"व्यक्ति" तालिका में एक नया रिकॉर्ड डालने के लिए, हमें अगले फ़ंक्शन का उपयोग करना होगा (यह फ़ंक्शन seq_person अनुक्रम से अगला मान पुनर्प्राप्त करता है):
INSERT INTO Persons (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');
उपरोक्त SQL कथन "व्यक्ति" तालिका में एक नया रिकॉर्ड सम्मिलित करेगा। "व्यक्तिगत" कॉलम को seq_person अनुक्रम से अगला नंबर सौंपा जाएगा। "फर्स्टनाम" कॉलम "लार्स" पर सेट किया जाएगा और "लास्टनाम" कॉलम "मोन्सन" पर सेट किया जाएगा।