Najnowsze tutoriale tworzenie stron internetowych
 

SQL Automatycznego przyrostu pole


Auto-inkrementacja umożliwia unikalny numer mają być generowane gdy nowy rekord jest wstawiane do tabeli.


Automatycznego przyrostu polu

Bardzo często chcielibyśmy wartość pola klucza podstawowego zostać utworzone automatycznie za każdym razem, gdy nowy rekord zostanie wstawiony.

Chcielibyśmy stworzyć pole automatycznego przyrostu w tabeli.


Składnia dla MySQL

Poniższa instrukcja SQL definiuje "ID" kolumnę być pierwotne pole klucza automatycznego przyrostu w "Persons" tabela:

CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)

MySQL używa słowa kluczowego AUTO_INCREMENT do wykonywania funkcji automatycznego.

Domyślnie, wartość wyjścia dla AUTO_INCREMENT jest 1, a będzie to przyrost o 1 dla każdego nowego rekordu.

Aby umożliwić sekwencja AUTO_INCREMENT zacząć inną wartość, należy wykonać następującą instrukcję SQL:

ALTER TABLE Persons AUTO_INCREMENT=100

Aby wstawić nowy rekord do "Persons" stole, będziemy NIE trzeba określić wartość dla "ID" kolumny (unikalna wartość zostanie dodana automatycznie):

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

Instrukcja SQL powyżej, wstawić nowy rekord do "Persons" tabeli. "ID" kolumna przypisuje unikalną wartość. "FirstName" kolumna będzie ustawiona na "Lars" i "LastName" kolumna będzie ustawiona na "Monsen" .


Składnia SQL Server

Poniższa instrukcja SQL definiuje "ID" kolumnę być pierwotne pole klucza automatycznego przyrostu w "Persons" tabela:

CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS SQL Server używa słowa kluczowego tożsamości, aby wykonać funkcję automatycznego.

W powyższym przykładzie, wartość wyjścia dla tożsamość jest 1, a będzie to przyrost o 1 dla każdego nowego rekordu.

Wskazówka: Aby określić, że "ID" kolumna powinna rozpocząć się w wartości 10 i przyrost o 5, zmień go na osobisty (10,5).

Aby wstawić nowy rekord do "Persons" stole, będziemy NIE trzeba określić wartość dla "ID" kolumny (unikalna wartość zostanie dodana automatycznie):

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

Instrukcja SQL powyżej, wstawić nowy rekord do "Persons" tabeli. "ID" kolumna przypisuje unikalną wartość. "FirstName" kolumna będzie ustawiona na "Lars" i "LastName" kolumna będzie ustawiona na "Monsen" .


Składnia dla programu Access

Poniższa instrukcja SQL definiuje "ID" kolumnę być pierwotne pole klucza automatycznego przyrostu w "Persons" tabela:

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

MS Access używa słowa kluczowego autoIncrement wykonywać funkcję automatycznego.

Domyślnie, wartość wyjścia dla autoIncrement jest 1, a będzie to przyrost o 1 dla każdego nowego rekordu.

Wskazówka: Aby określić, że "ID" kolumna powinna rozpocząć się w wartości 10 i przyrost o 5, zmienić AUTOINCREMENT do autoIncrement (10,5).

Aby wstawić nowy rekord do "Persons" stole, będziemy NIE trzeba określić wartość dla "ID" kolumny (unikalna wartość zostanie dodana automatycznie):

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

Instrukcja SQL powyżej, wstawić nowy rekord do "Persons" tabeli. "P_Id" kolumna przypisuje unikalną wartość. "FirstName" kolumna będzie ustawiona na "Lars" i "LastName" kolumna będzie ustawiona na "Monsen" .


Składnia dla Oracle

W Oracle kod jest trochę bardziej skomplikowane.

Trzeba będzie utworzyć pole automatycznego przyrostu z obiektu sekwencji (obiekt ten generuje sekwencję liczb).

Użyj następującej składni TWORZENIA kolejności:

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

Powyższy kod tworzy obiekt o nazwie seq_person sekwencji, który rozpoczyna się 1 i spowodują przyrost o 1. Będzie także buforować maksymalnie 10 wartości dla wydajności. Opcja cache określa ile wartości sekwencji zostaną zapisane w pamięci dla szybszego dostępu.

Aby wstawić nowy rekord do "Persons" stole, będziemy musieli skorzystać z funkcji NEXTVAL (ta funkcja pobiera następną wartość z sekwencji seq_person):

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

Instrukcja SQL powyżej, wstawić nowy rekord do "Persons" tabeli. "ID" kolumna będzie przypisany kolejny numer z sekwencji seq_person. "FirstName" kolumna będzie ustawiona na "Lars" i "LastName" kolumna będzie ustawiona na "Monsen" .