Locus AUTO INCREMENT SQL

Auto-increment akan menghasilkan angka unik semasa rekod baru disisipkan ke dalam tabel.

Lajur AUTO INCREMENT

Kami biasanya menginginkan untuk mencipta nilai lajur kunci utama secara automatik setiap kali kami memasukkan rekod baru.

Kami boleh membuat lajur auto-increment dalam tábal.

Syarat yang digunakan untuk MySQL

Perintah SQL berikut menjadikan lajur "P_Id" dalam tábal "Persons" sebagai kunci utama auto-increment:

CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

MySQL menggunakan kata kunci AUTO_INCREMENT untuk melaksanakan tugas auto-increment.

Secara lalai, nilai awal AUTO_INCREMENT adalah 1, setiap rekod baru bertambah 1.

Untuk membuat julur AUTO_INCREMENT seri bermula daripada nilai lain, sila gunakan syarat SQL berikut:

ALTER TABLE Persons AUTO_INCREMENT=100

Untuk memasukkan rekod baru ke dalam tábal "Persons", kami tidak perlu menetapkan nilai untuk lajur "P_Id" (akan ditambah secara automatik nilai yang unik):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

Perintah SQL di atas akan memasukkan catatan baru ke tabel "Persons". "P_Id" akan diberikan nilai unik. "FirstName" akan diatur menjadi "Bill", kolom "LastName" akan diatur menjadi "Gates".

Syarat yang digunakan untuk SQL Server

Perintah SQL berikut menjadikan lajur "P_Id" dalam tábal "Persons" sebagai kunci utama auto-increment:

CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS SQL menggunakan kata kunci IDENTITY untuk melaksanakan tugas auto-increment.

Secara lalai, nilai awal IDENTITY adalah 1, setiap rekod baru bertambah 1.

Untuk menetapkan lajur "P_Id" untuk bermula daripada 20 dan bertambah 10, sila ubah identity kepada IDENTITY(20,10):

Untuk memasukkan rekod baru ke dalam tábal "Persons", kami tidak perlu menetapkan nilai untuk lajur "P_Id" (akan ditambah secara automatik nilai yang unik):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

Perintah SQL di atas akan memasukkan catatan baru ke tabel "Persons". "P_Id" akan diberikan nilai unik. "FirstName" akan diatur menjadi "Bill", kolom "LastName" akan diatur menjadi "Gates".

Syarat yang digunakan untuk Access

Perintah SQL berikut menjadikan lajur "P_Id" dalam tábal "Persons" sebagai kunci utama auto-increment:

CREATE TABLE Persons
(
P_Id int PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS Access menggunakan kata kunci AUTOINCREMENT untuk melaksanakan tugas auto-increment.

Secara lalai, nilai awal AUTOINCREMENT adalah 1, setiap rekod baru bertambah 1.

Untuk menetapkan lajur "P_Id" untuk bermula daripada 20 dan bertambah 10, sila ubah autoincrement kepada AUTOINCREMENT(20,10):

Untuk memasukkan rekod baru ke dalam tábal "Persons", kami tidak perlu menetapkan nilai untuk lajur "P_Id" (akan ditambah secara automatik nilai yang unik):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

Perintah SQL di atas akan memasukkan catatan baru ke tabel "Persons". "P_Id" akan diberikan nilai unik. "FirstName" akan diatur menjadi "Bill", kolom "LastName" akan diatur menjadi "Gates".

Tata bahasa untuk Oracle

Di Oracle, kode ini lebih kompleks sedikit.

Anda harus melalui urutan untuk menciptakan kolom auto-increment (objek ini menciptakan urutan angka).

Gunakan tata bahasa CREATE SEQUENCE di bawah ini:

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

Kode di atas menciptakan objek urutan seq_person dengan nama, memulai dari 1 dan bertambah 1. Objek ini menyimpan 10 nilai untuk meningkatkan kinerja. Pilihan CACHE menentukan berapa banyak nilai urutan yang disimpan untuk meningkatkan kecepatan akses.

Untuk memasukkan catatan baru ke tabel "Persons", kita harus menggunakan fungsi nextval (fungsi ini mengambil nilai berikutnya dari urutan seq_person):

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

Perintah SQL di atas akan memasukkan catatan baru ke dalam tabel "Persons". Penugasan "P_Id" adalah angka berikutnya dari urutan seq_person. "FirstName" akan diatur menjadi "Bill", kolom "LastName" akan diatur menjadi "Gates".