SQL AUTO INCREMENT Field

AUTO INCREMENT புலத்தைப் பற்றி அறிந்து, தானாகவே தனித்துவமான எண்களை எவ்வாறு உருவாக்குவது என்பதைக் கற்றுக்கொள்ளுங்கள்

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-ல் கூடுதல் வரிசை நிர்வாகம் தேவை

பயிற்சி

SQL-ல் AUTO_INCREMENT புலத்தின் முதன்மை நோக்கம் என்ன?

ஒரு நெடுவரிசையில் நகல் மதிப்புகளை அனுமதிக்க
✗ தவறு! AUTO_INCREMENT நகல் மதிப்புகளை அனுமதிப்பதில்லை, மாறாக தனித்துவமான மதிப்புகளை உருவாக்குகிறது
ஒரு நெடுவரிசைக்கு தானாகவே தனித்துவமான எண்ணை உருவாக்க
✓ சரி! AUTO_INCREMENT ஒரு புதிய பதிவு செருகப்படும் போது தானாகவே தனித்துவமான எண்ணை உருவாக்குகிறது, பொதுவாக முதன்மை விசைகளுக்காக
நீக்கப்பட்ட பிறகு நெடுவரிசை மதிப்புகளை மீட்டமைக்க
✗ தவறு! AUTO_INCREMENT நீக்கப்பட்ட மதிப்புகளை தானாக மீட்டமைக்காது
நெடுவரிசை தரவை உரை வடிவத்தில் வடிவமைக்க
✗ தவறு! AUTO_INCREMENT எண் மதிப்புகளை உருவாக்க பயன்படுகிறது, உரை வடிவமைப்பிற்கு அல்ல