1. Tự động tăng AUTO INCREMENT

Tự động tăng hay AUTO INCREMENT là một trường (Field) 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. Chúng ta hay sử dụng trường tự động tăng cho cột có khóa chính vì đơn giản chúng ta 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 thêm trường tự động tăng vào trong câu lệnh tạo bảng:

CREATE TABLE table_name (
    column1 datatype IDENTITY(1,1) PRIMARY KEY,
    column2 datatype,
    column3 datatype,
    ....
);

Trong đó:

  • CREATE TABLE là câu lệnh hay từ khóa cần có để tạo bảng
  • table_name là tên của bảng cần tạo
  • PRIMARY KEY là khóa chính
  • column1, column2, column3… là tên các cột thuộc trong bảng
  • datatype là kiểu dữ liệu của từng cột
  • IDENTITY(1,1) là từ khóa cho việc tự động tăng và giá trị này bắt đầu từ số 1 sau đó mỗi lần tăng thêm 1 đơn vị cho mỗi bản ghi mới được thêm vào bảng

Chú ý: Cú pháp ở câu lệnh trên thì trường tự động tăng sẽ được đặt vào cột có khóa chính trong bảng. Ta hoàn toàn thay đổi IDENTITY(1,1) thành các giá trị số ta cần tự động tăng lên sau khi có bản ghi được thêm vào bảng. Ví dụ như IDENTITY(1,10) nghĩa là bắt đầu từ số 1 và mỗi lần có bản ghi vào bảng sẽ tự động tăng thêm 10 đơn vị.

Sau khi có trường tự động tăng cho cột làm khóa chính, việc nhập 1 bản ghi mới vào bảng ta hoàn toàn có thể bỏ trống đi trường tự động tăng và cũng là khóa chính của bảng.

2. Ví dụ AUTO INCREMENT

Ví dụ dưới đây, tôi sẽ tạo bảng ConNguoi bao gồm các cột là: ID, Ho, Ten, DiaChi, ThanhPho và thêm trường tự động tăng vào cột khóa chính ID trong bảng. Tôi sẽ để giá trị từ 1 và mỗi lần có bản ghi mới vào bảng ConNguoi sẽ tự động tăng thêm một đơn vị cho cột khóa chính.

CREATE TABLE ConNguoi (
    ID int IDENTITY(1,1) PRIMARY KEY,
    Ho varchar(25) NOT NULL,
    Ten varchar(25) NOT NULL,
    DiaChi nvarchar(255),
    ThanhPho nvarchar(255)
);

Sau khi trường tự động tăng được thêm vào cột khóa chính ID trong bảng. Ta hoàn toàn có thể thêm mới dữ liệu vào trong bảng và bỏ qua trường ID

INSERT INTO ConNguoi (Ho,Ten,DiaChi,ThanhPho)
VALUES ('Chu','Minh Nam','Ba Vi','Ha Noi');

Sau khi câu lệnh INSERT ở trên được thực thi, trường ID sẽ tự động có giá trị là 1, sau những lần thêm bản ghi mới vào trong bảng ConNguoi bằng câu lệnh INSERT thì cột ID sẽ tự động tăng lên 1 đơn vị do ta đặt IDENTITY(1,1)