SQL OTOMATİK ARTIRMA Alanı
OTOMATİK ARTIRMA Alanı
Otomatik artış, bir tabloya yeni bir kayıt eklendiğinde benzersiz bir sayının otomatik olarak oluşturulmasına izin verir.
Genellikle bu, her yeni kayıt eklendiğinde otomatik olarak oluşturulmasını istediğimiz birincil anahtar alandır.
MySQL için Sözdizimi
Aşağıdaki SQL ifadesi, "Personid" sütununu "Kişiler" tablosunda otomatik artışlı birincil anahtar alanı olarak tanımlar:
CREATE TABLE Persons
(
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);
MySQL, AUTO_INCREMENT
otomatik artış özelliğini gerçekleştirmek için anahtar kelimeyi kullanır.
Varsayılan olarak, başlangıç değeri AUTO_INCREMENT
1'dir ve her yeni kayıt için 1 artar.
AUTO_INCREMENT
Dizinin başka bir değerle başlamasına izin vermek için aşağıdaki SQL ifadesini kullanın:
ALTER TABLE Persons AUTO_INCREMENT=100;
"Kişiler" tablosuna yeni bir kayıt eklemek için, "Personid" sütunu için bir değer belirtmemiz gerekmeyecektir (benzersiz bir değer otomatik olarak eklenecektir):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
Yukarıdaki SQL ifadesi, "Kişiler" tablosuna yeni bir kayıt ekler. "Personid" sütununa benzersiz bir değer atanır. "FirstName" sütunu "Lars" olarak ve "LastName" sütunu "Monsen" olarak ayarlanacaktır.
SQL Server için Sözdizimi
Aşağıdaki SQL ifadesi, "Personid" sütununu "Kişiler" tablosunda otomatik artışlı birincil anahtar alanı olarak tanımlar:
CREATE TABLE Persons
(
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS SQL Server, IDENTITY
bir otomatik artış özelliği gerçekleştirmek için anahtar sözcüğü kullanır.
Yukarıdaki örnekte, başlangıç değeri
IDENTITY
1'dir ve her yeni kayıt için 1 artırılır.
İpucu: "Personid" sütununun 10 değerinden başlayıp 5 oranında artması gerektiğini belirtmek için olarak değiştirin IDENTITY(10,5)
.
"Kişiler" tablosuna yeni bir kayıt eklemek için, "Personid" sütunu için bir değer belirtmemiz gerekmeyecektir (benzersiz bir değer otomatik olarak eklenecektir):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
Yukarıdaki SQL ifadesi, "Kişiler" tablosuna yeni bir kayıt ekler. "Personid" sütununa benzersiz bir değer atanır. "FirstName" sütunu "Lars" olarak ve "LastName" sütunu "Monsen" olarak ayarlanacaktır.
Erişim için Sözdizimi
Aşağıdaki SQL ifadesi, "Personid" sütununu "Kişiler" tablosunda otomatik artışlı birincil anahtar alanı olarak tanımlar:
CREATE TABLE Persons
(
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS Access, AUTOINCREMENT
bir otomatik artış özelliği gerçekleştirmek için anahtar sözcüğü kullanır.
Varsayılan olarak, başlangıç değeri AUTOINCREMENT
1'dir ve her yeni kayıt için 1 artar.
İpucu: "Personid" sütununun 10 değerinden başlayıp 5 oranında artması gerektiğini belirtmek için otomatik artırmayı olarak değiştirin
AUTOINCREMENT(10,5)
.
"Kişiler" tablosuna yeni bir kayıt eklemek için, "Personid" sütunu için bir değer belirtmemiz gerekmeyecektir (benzersiz bir değer otomatik olarak eklenecektir):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
Yukarıdaki SQL ifadesi, "Kişiler" tablosuna yeni bir kayıt ekler. "Personid" sütununa benzersiz bir değer atanır. "FirstName" sütunu "Lars" olarak ve "LastName" sütunu "Monsen" olarak ayarlanacaktır.
Oracle için Sözdizimi
Oracle'da kod biraz daha zor.
Sıra nesnesiyle bir otomatik artış alanı oluşturmanız gerekecektir (bu nesne bir sayı dizisi oluşturur).
Aşağıdaki CREATE SEQUENCE
sözdizimini kullanın:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
Yukarıdaki kod, 1 ile başlayan ve 1 ile artan seq_person adlı bir dizi nesnesi oluşturur. Ayrıca performans için 10 değere kadar önbelleğe alır. Önbellek seçeneği, daha hızlı erişim için bellekte kaç sıra değerinin saklanacağını belirtir.
"Persons" tablosuna yeni bir kayıt eklemek için nextval fonksiyonunu kullanmamız gerekecek (bu fonksiyon seq_person dizisinden bir sonraki değeri alır):
INSERT INTO Persons (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');
Yukarıdaki SQL ifadesi, "Kişiler" tablosuna yeni bir kayıt ekler. "Personid" sütununa seq_person dizisindeki bir sonraki numara atanacaktır. "FirstName" sütunu "Lars" olarak ve "LastName" sütunu "Monsen" olarak ayarlanacaktır.