Bidang PENINGKATAN OTOMATIS SQL
Bidang PENINGKATAN OTOMATIS
Peningkatan otomatis memungkinkan nomor unik dihasilkan secara otomatis ketika catatan baru dimasukkan ke dalam tabel.
Seringkali ini adalah bidang kunci utama yang ingin kita buat secara otomatis setiap kali catatan baru dimasukkan.
Sintaks untuk MySQL
Pernyataan SQL berikut mendefinisikan kolom "Personid" menjadi bidang kunci utama peningkatan otomatis di tabel "Orang":
CREATE TABLE Persons
(
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);
MySQL menggunakan AUTO_INCREMENT
kata kunci untuk melakukan fitur peningkatan otomatis.
Secara default, nilai awal untuk AUTO_INCREMENT
adalah 1, dan akan bertambah 1 untuk setiap record baru.
Untuk membiarkan AUTO_INCREMENT
urutan dimulai dengan nilai lain, gunakan pernyataan SQL berikut:
ALTER TABLE Persons AUTO_INCREMENT=100;
Untuk menyisipkan catatan baru ke dalam tabel "Orang", 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 catatan baru ke dalam tabel "Orang". 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 peningkatan otomatis di tabel "Orang":
CREATE TABLE Persons
(
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS SQL Server menggunakan IDENTITY
kata kunci untuk melakukan fitur peningkatan otomatis.
Dalam contoh di atas, nilai awal untuk
IDENTITY
adalah 1, dan akan bertambah 1 untuk setiap record baru.
Tip: Untuk menentukan bahwa kolom "Personid" harus dimulai dari nilai 10 dan bertambah 5, ubah menjadi IDENTITY(10,5)
.
Untuk menyisipkan catatan baru ke dalam tabel "Orang", 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 catatan baru ke dalam tabel "Orang". Kolom "Personid" akan diberi nilai unik. Kolom "FirstName" akan disetel ke "Lars" dan kolom "LastName" akan disetel ke "Monsen".
Sintaks untuk Akses
Pernyataan SQL berikut mendefinisikan kolom "Personid" menjadi bidang kunci utama peningkatan otomatis di tabel "Orang":
CREATE TABLE Persons
(
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS Access menggunakan AUTOINCREMENT
kata kunci untuk melakukan fitur peningkatan 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 dari nilai 10 dan bertambah 5, ubah peningkatan otomatis menjadi
AUTOINCREMENT(10,5)
.
Untuk menyisipkan catatan baru ke dalam tabel "Orang", 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 catatan baru ke dalam tabel "Orang". 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 peningkatan otomatis dengan objek urutan (objek ini menghasilkan urutan angka).
Gunakan CREATE SEQUENCE
sintaks 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 yang lebih cepat.
Untuk memasukkan record baru ke dalam tabel "Orang", 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 catatan baru ke dalam tabel "Orang". Kolom "Personid" akan diberi nomor berikutnya dari urutan seq_person. Kolom "FirstName" akan disetel ke "Lars" dan kolom "LastName" akan disetel ke "Monsen".