AUTO INCREMENT புலம் என்றால் என்ன?
Auto-increment ஒரு புதிய பதிவு அட்டவணையில் செருகப்படும் போது தானாகவே ஒரு தனித்துவமான எண்ணை உருவாக்க அனுமதிக்கிறது.
பெரும்பாலும் இது முதன்மை விசை புலமாகும், இது ஒவ்வொரு புதிய பதிவும் செருகப்படும் போதும் தானாகவே உருவாக்கப்பட我们希望.
முக்கியமான குறிப்பு:
AUTO INCREMENT தரவுத்தளத்தில் தனித்துவமான அடையாளங்களை தானாகவே உருவாக்க உதவுகிறது, இது பயனர்கள் கைமுறையாக மதிப்புகளை உள்ளிட வேண்டியதில்லை என்பதை உறுதி செய்கிறது.
MySQL-க்கான தொடரியல்
பின்வரும் SQL அறிக்கை "Persons" அட்டவணையில் "Personid" நெடுவரிசை auto-increment முதன்மை விசை புலமாக இருக்கும் வகையில் வரையறுக்கிறது:
MySQL CREATE TABLE:
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 அறிக்கையைப் பயன்படுத்தவும்:
MySQL AUTO_INCREMENT தொடக்கம் மாற்றம்:
ALTER TABLE Persons AUTO_INCREMENT=100;
MySQL-ல் புதிய பதிவைச் செருகுதல்
"Persons" அட்டவணையில் ஒரு புதிய பதிவைச் செருக, நாங்கள் "Personid" நெடுவரிசைக்கு மதிப்பைக் குறிப்பிட வேண்டியதில்லை (ஒரு தனித்துவமான மதிப்பு தானாகவே சேர்க்கப்படும்):
MySQL INSERT:
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');
SQL Server-க்கான தொடரியல்
பின்வரும் SQL அறிக்கை "Persons" அட்டவணையில் "Personid" நெடுவரிசை auto-increment முதன்மை விசை புலமாக இருக்கும் வகையில் வரையறுக்கிறது:
SQL Server CREATE TABLE:
CREATE TABLE Persons (
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS SQL Server தானியங்கி-அதிகரிப்பு அம்சத்தைச் செயல்படுத்த IDENTITY முக்கிய சொல்லைப் பயன்படுத்துகிறது.
மேலே உள்ள எடுத்துக்காட்டில், IDENTITY-க்கான தொடக்க மதிப்பு 1 ஆகும், மேலும் இது ஒவ்வொரு புதிய பதிவுக்கும் 1 ஆல் அதிகரிக்கும்.
உதவிக்குறிப்பு:
"Personid" நெடுவரிசை மதிப்பு 10 இல் தொடங்கி 5 ஆல் அதிகரிக்க வேண்டும் எனக் குறிப்பிட, அதை IDENTITY(10,5) ஆக மாற்றவும்.
SQL Server-ல் புதிய பதிவைச் செருகுதல்
SQL Server INSERT:
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');
Access-க்கான தொடரியல்
பின்வரும் SQL அறிக்கை "Persons" அட்டவணையில் "Personid" நெடுவரிசை auto-increment முதன்மை விசை புலமாக இருக்கும் வகையில் வரையறுக்கிறது:
MS Access CREATE TABLE:
CREATE TABLE Persons (
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS Access தானியங்கி-அதிகரிப்பு அம்சத்தைச் செயல்படுத்த AUTOINCREMENT முக்கிய சொல்லைப் பயன்படுத்துகிறது.
இயல்பாக, AUTOINCREMENT-க்கான தொடக்க மதிப்பு 1 ஆகும், மேலும் இது ஒவ்வொரு புதிய பதிவுக்கும் 1 ஆல் அதிகரிக்கும்.
உதவிக்குறிப்பு:
"Personid" நெடுவரிசை மதிப்பு 10 இல் தொடங்கி 5 ஆல் அதிகரிக்க வேண்டும் எனக் குறிப்பிட, autoincrement-ஐ AUTOINCREMENT(10,5) ஆக மாற்றவும்.
Oracle-க்கான தொடரியல்
Oracle-ல் குறியீடு சிறிது சிக்கலானது.
நீங்கள் வரிசை பொருளுடன் (sequence object) ஒரு தானியங்கி-அதிகரிப்பு புலத்தை உருவாக்க வேண்டும் (இந்த பொருள் எண் வரிசையை உருவாக்குகிறது).
பின்வரும் CREATE SEQUENCE தொடரியலைப் பயன்படுத்தவும்:
Oracle SEQUENCE உருவாக்கம்:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
மேலே உள்ள குறியீடு seq_person என்று அழைக்கப்படும் ஒரு வரிசை பொருளை உருவாக்குகிறது, இது 1 உடன் தொடங்கி 1 ஆல் அதிகரிக்கும். இது செயல்திறனுக்காக 10 மதிப்புகள் வரை cache செய்யும்.
Oracle-ல் புதிய பதிவைச் செருகுதல்
"Persons" அட்டவணையில் ஒரு புதிய பதிவைச் செருக, நாங்கள் nextval செயல்பாட்டைப் பயன்படுத்த வேண்டும் (இந்த செயல்பாடு seq_person வரிசையிலிருந்து அடுத்த மதிப்பைப் பெறுகிறது):
Oracle INSERT:
INSERT INTO Persons (Personid, FirstName, LastName)
VALUES (seq_person.nextval, 'Lars', 'Monsen');
தரவுத்தள ஒப்பீடு
MySQL
- முக்கிய சொல்: AUTO_INCREMENT
- தொடரியல்: column_name INT AUTO_INCREMENT
- தொடக்கம் மாற்றம்: ALTER TABLE table AUTO_INCREMENT=value
- INSERT: மதிப்பைக் குறிப்பிட தேவையில்லை
SQL Server
- முக்கிய சொல்: IDENTITY
- தொடரியல்: IDENTITY(start, increment)
- தொடக்கம் மாற்றம்: IDENTITY-ல் நேரடியாக
- INSERT: மதிப்பைக் குறிப்பிட தேவையில்லை
Oracle
- முக்கிய சொல்: SEQUENCE + NEXTVAL
- தொடரியல்: CREATE SEQUENCE
- தொடக்கம் மாற்றம்: SEQUENCE-ல் நேரடியாக
- INSERT: seq_name.nextval குறிப்பிட வேண்டும்
நடைமுறை உதாரணங்கள்
பயனர்கள் அட்டவணை
தானாக உருவாக்கப்படும் பயனர் ID
-- MySQL
CREATE TABLE Users (
UserID INT AUTO_INCREMENT PRIMARY KEY,
Username VARCHAR(50) NOT NULL,
Email VARCHAR(100)
);
INSERT INTO Users (Username, Email)
VALUES ('john_doe', 'john@example.com');
ஆர்டர்கள் அட்டவணை
தானாக உருவாக்கப்படும் ஆர்டர் எண்
-- SQL Server
CREATE TABLE Orders (
OrderID INT IDENTITY(1000,1) PRIMARY KEY,
CustomerID INT NOT NULL,
OrderDate DATE DEFAULT GETDATE()
);
INSERT INTO Orders (CustomerID)
VALUES (12345);
தயாரிப்புகள் அட்டவணை
தானாக உருவாக்கப்படும் தயாரிப்பு ID
-- Oracle
CREATE SEQUENCE seq_product START WITH 500;
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(255)
);
INSERT INTO Products (ProductID, ProductName)
VALUES (seq_product.nextval, 'Laptop');
நன்மைகள் மற்றும் கருத்துகள்
நன்மைகள்
- தனித்துவமான அடையாளங்களை தானாக உருவாக்குகிறது
- பயனர் உள்ளீட்டு பிழைகளைக் குறைக்கிறது
- தரவு ஒருமைப்பாட்டை பராமரிக்கிறது
- பயன்பாட்டு குறியீட்டை எளிதாக்குகிறது
- அடையாள மேலாண்மையை தானாகவே செய்கிறது
கருத்துகள்
- தரவுத்தளங்கள் இடையே மாற்றும் போது சிக்கல்கள்
- வெவ்வேறு தரவுத்தளங்களுக்கு வெவ்வேறு தொடரியல்
- காலியிடங்கள் நீக்கப்பட்ட பதிவுகளுக்கு ஏற்படலாம்
- அதிகபட்ச மதிப்பு வரம்புகள் இருக்கலாம்
- Oracle-ல் கூடுதல் வரிசை நிர்வாகம் தேவை