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