Manual Tutorial...login
Manual Tutorial Permulaan SQL
pengarang:php.cn  masa kemas kini:2022-04-12 14:15:40

SQL AUTO NAIK



Autokenaikan menjana nombor unik apabila rekod baharu dimasukkan ke dalam jadual.


Medan AUTO KENAIKAN

Kami biasanya mahu mencipta nilai medan kunci primer secara automatik setiap kali rekod baharu dimasukkan.

Kami boleh mencipta medan kenaikan automatik dalam jadual.


Sintaks untuk MySQL

Pernyataan SQL berikut mentakrifkan lajur "ID" dalam jadual "Orang" sebagai medan kunci utama kenaikan automatik:

CIPTA MEJA Orang
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Alamat varchar(255),
City varchar(255),
PRIMARY KEY ID)
)

MySQL menggunakan kata kunci AUTO_INCREMENT untuk melaksanakan tugasan kenaikan automatik.

Secara lalai, AUTO_INCREMENT bermula pada 1 dan kenaikan sebanyak 1 untuk setiap rekod baharu.

Untuk mendapatkan urutan AUTO_INCREMENT bermula dengan nilai yang berbeza, gunakan sintaks SQL berikut:

ALTER TABLE Persons AUTO_INCREMENT=100

Untuk berada dalam Untuk memasukkan rekod baharu ke dalam jadual "Orang", kita tidak perlu menentukan nilai untuk lajur "ID" (nilai unik akan ditambah secara automatik):

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

Pernyataan SQL di atas akan memasukkan rekod baharu dalam jadual "Orang". Lajur "ID" akan diberikan nilai unik. Lajur "FirstName" akan ditetapkan kepada "Lars" dan lajur "LastName" akan ditetapkan kepada "Monsen".


Sintaks untuk Pelayan SQL

Pernyataan SQL berikut mentakrifkan lajur "ID" dalam jadual "Orang" sebagai medan kunci utama kenaikan automatik:

CIPTA MEJA Orang
(
ID int IDENTITI(1,1) KUNCI UTAMA,
Nama Akhir varchar(255) BUKAN NULL,
FirstName varchar(255),
Alamat varchar(255),
City varchar(255)
)

MS SQL Server menggunakan kata kunci IDENTITI untuk melaksanakan tugasan kenaikan automatik.

Dalam contoh di atas, IDENTITI bermula pada 1 dan meningkat sebanyak 1 untuk setiap rekod baharu.

Petua: Untuk menentukan bahawa lajur "ID" bermula pada 10 dan meningkat sebanyak 5, tukar identiti kepada IDENTITY(10,5).

Untuk memasukkan rekod baharu ke dalam jadual "Orang", kita tidak perlu menentukan nilai untuk lajur "ID" (nilai unik ditambah secara automatik):

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

Pernyataan SQL di atas akan memasukkan rekod baharu dalam jadual "Orang". Lajur "ID" akan diberikan nilai unik. Lajur "FirstName" akan ditetapkan kepada "Lars" dan lajur "LastName" akan ditetapkan kepada "Monsen".


Sintaks untuk Akses

Pernyataan SQL berikut mentakrifkan lajur "ID" dalam jadual "Orang" sebagai medan kunci utama kenaikan automatik:

CIPTA MEJA Orang
(
ID Integer OTOMATIS KUNCI UTAMA,
Nama Akhir varchar(255) BUKAN NULL,
FirstName varchar(255),
Alamat varchar(255),
City varchar(255)
)

MS Access menggunakan kata kunci AUTOINCREMENT untuk melaksanakan tugas autoincrement.

Secara lalai, AUTOINCREMENT bermula pada 1 dan kenaikan sebanyak 1 untuk setiap rekod baharu.

Petua: Untuk menentukan bahawa lajur "ID" bermula pada 10 dan meningkat sebanyak 5, sila tukar autoincrement kepada AUTOINCREMENT(10,5).

Untuk memasukkan rekod baharu ke dalam jadual "Orang", kita tidak perlu menentukan nilai untuk lajur "ID" (nilai unik ditambah secara automatik):

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

Pernyataan SQL di atas akan memasukkan rekod baharu dalam jadual "Orang". Lajur "ID" akan diberikan nilai unik. Lajur "FirstName" akan ditetapkan kepada "Lars" dan lajur "LastName" akan ditetapkan kepada "Monsen".


Sintaks untuk Oracle

Dalam Oracle, kodnya lebih rumit sedikit.

Anda mesti mencipta medan autokenaikan daripada objek jujukan (yang menjana jujukan nombor).

Sila gunakan sintaks CREATE SEQUENCE berikut:

CIPTA SEQUENCE seq_person
MINVALUE 1
MULAKAN DENGAN 1
PENAMBAHKAN SEBANYAK 1<🎜0 >
Kod di atas mencipta objek jujukan bernama seq_person, yang bermula dengan 1 dan menambah 1. Objek ini menyimpan 10 nilai untuk meningkatkan prestasi. Pilihan cache menentukan berapa banyak nilai jujukan untuk disimpan untuk meningkatkan kelajuan akses.

Untuk memasukkan rekod baharu dalam jadual "Orang", kita perlu menggunakan fungsi nextval (yang mendapatkan semula nilai seterusnya daripada urutan seq_person):

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

Pernyataan SQL di atas akan memasukkan rekod baharu dalam jadual "Orang". Lajur "ID" akan diberikan nombor seterusnya daripada urutan seq_person. Lajur "FirstName" akan ditetapkan kepada "Lars" dan lajur "LastName" akan ditetapkan kepada "Monsen".