SQL Auto Increment - TeachMeSoft

SQL Auto Increment










Bidang AUTO INCREMENT

Auto-increment memungkinkan nomor unik dibuat secara otomatis saat record baru dimasukkan ke dalam tabel.

Seringkali ini adalah bidang kunci utama yang ingin kami buat secara otomatis setiap kali catatan baru dimasukkan.


Sintaks untuk MySQL

Pernyataan SQL berikut mendefinisikan kolom "Personid" menjadi bidang kunci utama penambahan otomatis di tabel "Orang":

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

MySQL menggunakan kata kunci AUTO_INCREMENT untuk melakukan fitur kenaikan otomatis.

Secara default, nilai awal untuk AUTO_INCREMENT adalah 1, dan akan bertambah 1 untuk setiap record baru.

Untuk membiarkan urutan AUTO_INCREMENT dimulai dengan nilai lain, gunakan pernyataan SQL berikut ini:

ALTER TABLE Persons AUTO_INCREMENT=100;

Untuk memasukkan record baru ke dalam tabel "Persons", kita TIDAK perlu menentukan nilai untuk kolom "Personid" (nilai unik akan ditambahkan secara otomatis):

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

Pernyataan SQL di atas akan memasukkan record baru ke dalam tabel "Persons". Kolom "Personid" akan diberi nilai unik. Kolom "FirstName" akan disetel ke "Lars" dan kolom "LastName" akan disetel ke "Monsen".


Sintaks untuk SQL Server

Pernyataan SQL berikut mendefinisikan kolom "Personid" menjadi bidang kunci utama penambahan otomatis di tabel "Orang":

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

MS SQL Server menggunakan kata kunci IDENTITAS untuk melakukan fitur auto-increment.

Dalam contoh di atas, nilai awal untuk IDENTITAS adalah 1, dan akan bertambah 1 untuk setiap catatan baru.

Tip: Untuk menentukan bahwa kolom "Personid" harus dimulai dari nilai 10 dan bertambah 5, ubah ke IDENTITY (10,5).

Untuk memasukkan record baru ke dalam tabel "Persons", kita TIDAK perlu menentukan nilai untuk kolom "Personid" (nilai unik akan ditambahkan secara otomatis):

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

Pernyataan SQL di atas akan memasukkan record baru ke dalam tabel "Persons". Kolom "Personid" akan diberi nilai unik. Kolom "FirstName" akan disetel ke "Lars" dan kolom "LastName" akan disetel ke "Monsen".



Sintaks untuk Access

Pernyataan SQL berikut mendefinisikan kolom "Personid" menjadi bidang kunci utama penambahan otomatis di tabel "Orang":

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

MS Access menggunakan kata kunci AUTOINCREMENT untuk melakukan fitur penambahan otomatis.

Secara default, nilai awal untuk AUTOINCREMENT adalah 1, dan akan bertambah 1 untuk setiap record baru.

Tip: Untuk menentukan bahwa kolom "Personid" harus dimulai pada nilai 10 dan bertambah 5, ubah autoincrement ke AUTOINCREMENT (10,5).

Untuk memasukkan record baru ke dalam tabel "Persons", kita TIDAK perlu menentukan nilai untuk kolom "Personid" (nilai unik akan ditambahkan secara otomatis):

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

Pernyataan SQL di atas akan memasukkan record baru ke dalam tabel "Persons". Kolom "Personid" akan diberi nilai unik. Kolom "FirstName" akan disetel ke "Lars" dan kolom "LastName" akan disetel ke "Monsen".


Sintaks untuk Oracle

Di Oracle, kodenya sedikit lebih rumit.

Anda harus membuat bidang kenaikan otomatis dengan objek urutan (objek ini menghasilkan urutan angka).

Gunakan sintaks CREATE SEQUENCE berikut:

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

Kode di atas membuat objek urutan yang disebut seq_person, yang dimulai dengan 1 dan akan bertambah 1. Ini juga akan menyimpan hingga 10 nilai untuk kinerja. Opsi cache menentukan berapa banyak nilai urutan yang akan disimpan dalam memori untuk akses lebih cepat.

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

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

Pernyataan SQL di atas akan memasukkan record baru ke dalam tabel "Persons". Kolom "Personid" akan diberi nomor berikutnya dari urutan seq_person. Kolom "FirstName" akan disetel ke "Lars" dan kolom "LastName" akan disetel ke "Monsen".



















Disqus comments