Thứ Ba, 12 tháng 1, 2021

SQL AUTO INCREMENT Field

Trường AUTO INCREMENT

Tự động tăng cho phép một số duy nhất được tạo tự động khi một bản ghi mới được chèn vào bảng.

Thường thì đây là trường khóa chính mà chúng tôi muốn được tạo tự động mỗi khi một bản ghi mới được chèn vào.


Cú pháp cho MySQL

Câu lệnh SQL sau xác định cột "Personid" là trường khóa chính tự động tăng trong bảng "Người":

CREATE TABLE Persons (
    Personid int NOT NULL AUTO_INCREMENT,
    LastName varchar(255NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (Personid)
);

MySQL sử dụng từ khóa AUTO_INCREMENT để thực hiện tính năng tự động tăng.

Theo mặc định, giá trị bắt đầu cho AUTO_INCREMENT là 1 và nó sẽ tăng lên 1 cho mỗi bản ghi mới.

Để để trình tự AUTO_INCREMENT bắt đầu bằng một giá trị khác, hãy sử dụng câu lệnh SQL sau:

ALTER TABLE Persons AUTO_INCREMENT=100;

Để chèn một bản ghi mới vào bảng "Người", chúng tôi sẽ KHÔNG phải chỉ định giá trị cho cột "Personid" (một giá trị duy nhất sẽ được thêm tự động):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

Câu lệnh SQL ở trên sẽ chèn một bản ghi mới vào bảng "Người". Cột "Personid" sẽ được gán một giá trị duy nhất. Cột "FirstName" sẽ được đặt thành "Lars" và cột "LastName" sẽ được đặt thành "Monsen".


Cú pháp cho SQL Server

Câu lệnh SQL sau xác định cột "Personid" là trường khóa chính tự động tăng trong bảng "Người":

CREATE TABLE Persons (
    Personid int IDENTITY(1,1PRIMARY KEY,
    LastName varchar(255NOT NULL,
    FirstName varchar(255),
    Age int
);

MS SQL Server sử dụng từ khóa IDENTITY để thực hiện tính năng tự động tăng.

Trong ví dụ trên, giá trị bắt đầu cho IDENTITY là 1 và nó sẽ tăng lên 1 cho mỗi bản ghi mới.

Mẹo: Để chỉ định rằng cột "Personid" phải bắt đầu ở giá trị 10 và tăng lên 5, hãy thay đổi nó thành IDENTITY (10,5).

Để chèn một bản ghi mới vào bảng "Người", chúng tôi sẽ KHÔNG phải chỉ định giá trị cho cột "Personid" (một giá trị duy nhất sẽ được thêm tự động):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

Câu lệnh SQL ở trên sẽ chèn một bản ghi mới vào bảng "Người". Cột "Personid" sẽ được gán một giá trị duy nhất. Cột "FirstName" sẽ được đặt thành "Lars" và cột "LastName" sẽ được đặt thành "Monsen".

Cú pháp truy cập

Câu lệnh SQL sau xác định cột "Personid" là trường khóa chính tự động tăng trong bảng "Người":

CREATE TABLE Persons (
    Personid AUTOINCREMENT PRIMARY KEY,
    LastName varchar(255NOT NULL,
    FirstName varchar(255),
    Age int
);

MS Access sử dụng từ khóa AUTOINCREMENT để thực hiện tính năng tự động tăng.

Theo mặc định, giá trị bắt đầu cho AUTOINCREMENT là 1 và nó sẽ tăng lên 1 cho mỗi bản ghi mới.

Mẹo: Để chỉ định rằng cột "Personid" phải bắt đầu ở giá trị 10 và tăng lên 5, hãy thay đổi tự động tăng thành TỰ ĐỘNG (10,5).

Để chèn một bản ghi mới vào bảng "Người", chúng tôi sẽ KHÔNG phải chỉ định giá trị cho cột "Personid" (một giá trị duy nhất sẽ được thêm tự động):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

Câu lệnh SQL ở trên sẽ chèn một bản ghi mới vào bảng "Người". Cột "Personid" sẽ được gán một giá trị duy nhất. Cột "FirstName" sẽ được đặt thành "Lars" và cột "LastName" sẽ được đặt thành "Monsen".


Cú pháp cho Oracle

Trong Oracle, mã phức tạp hơn một chút.

Bạn sẽ phải tạo một trường tăng tự động với đối tượng chuỗi (đối tượng này tạo ra một chuỗi số).

Sử dụng cú pháp CREATE SEQUENCE sau:

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;

Đoạn mã trên tạo một đối tượng trình tự được gọi là seq_woman, bắt đầu bằng 1 và sẽ tăng lên 1. Nó cũng sẽ lưu vào bộ đệm tối đa 10 giá trị cho hiệu suất. Tùy chọn bộ đệm chỉ định số lượng giá trị trình tự sẽ được lưu trữ trong bộ nhớ để truy cập nhanh hơn.

Để chèn một bản ghi mới vào bảng "Người", chúng ta sẽ phải sử dụng hàm tiếp theo (hàm này lấy giá trị tiếp theo từ chuỗi seq_ person):

INSERT INTO Persons (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');

Câu lệnh SQL ở trên sẽ chèn một bản ghi mới vào bảng "Người". Cột "Personid" sẽ được gán số tiếp theo từ trình tự seq_ person. Cột "FirstName" sẽ được đặt thành "Lars" và cột "LastName" sẽ được đặt thành "Monsen".

==================================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

#OracleTutorial #OracleDBA #OracleDatabaseAdministration #học oracle database #oca #ocp #tự học oracle

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master