SQL AUTO INCREMENT 필드
자동 증가 필드
자동 증분은 새 레코드가 테이블에 삽입될 때 고유 번호가 자동으로 생성되도록 합니다.
종종 이것은 새 레코드가 삽입될 때마다 자동으로 생성되기를 원하는 기본 키 필드입니다.
MySQL용 구문
다음 SQL 문은 "Persons" 테이블의 자동 증분 기본 키 필드가 되도록 "Personid" 열을 정의합니다.
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
키워드를 사용하여 자동 증가 기능을 수행합니다.
기본적으로 시작 값 AUTO_INCREMENT
은 1이며 새 레코드마다 1씩 증가합니다.
시퀀스가 다른 값으로 시작 되도록 하려면 AUTO_INCREMENT
다음 SQL 문을 사용하십시오.
ALTER TABLE Persons AUTO_INCREMENT=100;
"Persons" 테이블에 새 레코드를 삽입하기 위해 "Personid" 열에 대한 값을 지정할 필요가 없습니다(고유한 값이 자동으로 추가됨):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
위의 SQL 문은 "Persons" 테이블에 새 레코드를 삽입합니다. "Personid" 열에는 고유한 값이 할당됩니다. "FirstName" 열은 "Lars"로 설정되고 "LastName" 열은 "Monsen"으로 설정됩니다.
SQL Server용 구문
다음 SQL 문은 "Persons" 테이블의 자동 증분 기본 키 필드가 되도록 "Personid" 열을 정의합니다.
CREATE TABLE Persons
(
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS SQL Server는 IDENTITY
키워드를 사용하여 자동 증가 기능을 수행합니다.
위의 예에서 시작 값
IDENTITY
은 1이고 새 레코드마다 1씩 증가합니다.
팁: "Personid" 열이 값 10에서 시작하고 5씩 증가하도록 지정하려면 로 변경하십시오 IDENTITY(10,5)
.
"Persons" 테이블에 새 레코드를 삽입하기 위해 "Personid" 열에 대한 값을 지정할 필요가 없습니다(고유한 값이 자동으로 추가됨):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
위의 SQL 문은 "Persons" 테이블에 새 레코드를 삽입합니다. "Personid" 열에는 고유한 값이 할당됩니다. "FirstName" 열은 "Lars"로 설정되고 "LastName" 열은 "Monsen"으로 설정됩니다.
액세스 구문
다음 SQL 문은 "Persons" 테이블의 자동 증분 기본 키 필드가 되도록 "Personid" 열을 정의합니다.
CREATE TABLE Persons
(
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS Access는 AUTOINCREMENT
키워드를 사용하여 자동 증가 기능을 수행합니다.
기본적으로 시작 값 AUTOINCREMENT
은 1이며 새 레코드마다 1씩 증가합니다.
팁: "Personid" 열이 값 10에서 시작하고 5씩 증가하도록 지정하려면 자동 증가를 로 변경하십시오
AUTOINCREMENT(10,5)
.
"Persons" 테이블에 새 레코드를 삽입하기 위해 "Personid" 열에 대한 값을 지정할 필요가 없습니다(고유한 값이 자동으로 추가됨):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
위의 SQL 문은 "Persons" 테이블에 새 레코드를 삽입합니다. "Personid" 열에는 고유한 값이 할당됩니다. "FirstName" 열은 "Lars"로 설정되고 "LastName" 열은 "Monsen"으로 설정됩니다.
Oracle용 구문
Oracle에서는 코드가 조금 더 까다롭습니다.
시퀀스 개체를 사용하여 자동 증가 필드를 만들어야 합니다(이 개체는 숫자 시퀀스를 생성함).
다음 CREATE SEQUENCE
구문을 사용합니다.
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
위의 코드는 1부터 시작하여 1씩 증가하는 seq_person이라는 시퀀스 개체를 만듭니다. 또한 성능을 위해 최대 10개의 값을 캐시합니다. 캐시 옵션은 더 빠른 액세스를 위해 메모리에 저장할 시퀀스 값의 수를 지정합니다.
"Persons" 테이블에 새 레코드를 삽입하려면 nextval 함수를 사용해야 합니다(이 함수는 seq_person 시퀀스에서 다음 값을 검색함).
INSERT INTO Persons (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');
위의 SQL 문은 "Persons" 테이블에 새 레코드를 삽입합니다. "Personid" 열에는 seq_person 시퀀스의 다음 번호가 할당됩니다. "FirstName" 열은 "Lars"로 설정되고 "LastName" 열은 "Monsen"으로 설정됩니다.