SQL - Auto Increment

Az SQL AUTO INCREMENT utasítás:

Szeretnénk értékét adni automatikusan az elsődleges kulcs mezőnek, valahányszor egy új rekorddal egészül ki.

MySQL

CREATE TABLE személyek
(
személyek_azonosító int NOT NULL AUTO_INCREMENT,
vezetéknév varchar(255) NOT NULL,
keresztnév varchar(255),
cím varchar(255),
város varchar(255),
PRIMARY KEY (személyek_azonosító)
)

Az Auto-Increment utasítással az elsődleges kulcs kezdeti értékét is meg tudjuk határozni:

ALTER TABLE személyek AUTO_INCREMENT=100

Ha egy új rekordot szúrunk ba a "személyek" táblába, akkor nem kell az értéket a "személyek_azonosító" oszlopban is felvennünk mert automatikusan egyedi értékkel egészül ki:

INSERT INTO személyek (vezetéknév,keresztnév)
VALUES ('Tóth','Renáta')

SQL Server szintaxis:

CREATE TABLE személyek
(
személyek_azonosító int PRIMARY KEY IDENTITY,
vezetéknév varchar(255) NOT NULL,
keresztnév varchar(255),
cím varchar(255),
város varchar(255)
)

Az MS SQL Server használatánál kulcsszót kell használnunk az Auto-Increment funkcióban. Alapértelmezés szerint a kezdő érték identitás 1, és akkor minden 1-Increment egy új rekord. Egy érték megadásához a "személyek_azonosító" oszlopban kell kezdeni, pl ha az érték 10 és a növedék 5,a személyazonosító IDENTITÁS (10,5). A fenti SQL utasítás egy új rekordot ad a "személyek" táblázathoz. Ha beszúrunk egy új rekordot a "személyek" táblába, akkor nem kell meg egy értéket a "személyek_azonosító" oszlopban is felvennünk (egyedi értékkel automatikusan kiegészül):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Balog','Katalin')

Hozzáférhetőségi szintaxis:

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

Az MS ACCESS Server használatánál kulcsszót kell használnunk az Auto-Increment funkcióban. Alapértelmezés szerint a kezdő érték identitás 1, és akkor minden 1-Increment egy új rekord. Egy érték megadásához a "személyek_azonosító" oszlopban kell kezdeni, pl ha az érték 10 és a növedék 5,a személyazonosító IDENTITÁS (10,5). A fenti SQL utasítás egy új rekordot ad a "személyek" táblázathoz. Ha beszúrunk egy új rekordot a "személyek" táblába, akkor nem kell meg egy értéket a "személyek_azonosító" oszlopban is felvennünk (egyedi értékkel automatikusan kiegészül):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Balog','Katalin')

Szintaxis ORACLE-ben:

Az Oracle a kód egy kicsit trükkösebb. Létre kell hozni az Auto-Increment terén egy új objektum sorozatot (ez az objektum generál számsort).

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

A fenti kód létrehoz egy új sorozatot seq_person nevű objektum néven. A cache beállítás meghatározza, hogy hány sorozat értéke kerül tárolásra a memóriában a gyorsabb hozzáférés érdekében. Egy új rekordot szeretnénk beszúrni a "személyek" tábla, a nextval funkció segítségével beolvassuk a következő értéket a seq_person objektumba, sorrendben:

INSERT INTO Persons (személyek_azonosító,vezetéknév,keresztnév)
VALUES (seq_person.nextval,'Balog','Katalin')

A hozzászólás csak a regisztrált és bejelentkezett tagok számára engedélyezett!

Oldalainkat 34 vendég böngészi
Látogatóink száma: 2010.07.10 -től