Latest web development tutorials

SQL AUTO INCREMENTフィールド

新しいレコード内の自動インクリメントは、ときに、テーブルに一意の番号を生成します。


AUTO INCREMENTフィールド

私たちは通常、自動的にプライマリキーフィールドの値を作成し、新しいレコードを毎回挿入します。

私たちは、テーブルに自動インクリメントフィールドを作成することができます。


MySQLの構文

「ID」欄の「人」の表に次のSQL文は、自動インクリメントの主キーフィールドとして定義されます。

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は自動インクリメントを実行するためにAUTO_INCREMENTキーワードを使用しています。

デフォルトでは、開始値AUTO_INCREMENTは1であり、そしてそれぞれの新しいレコードのために1だけインクリメントされます。

AUTO_INCREMENTシーケンスは、別の値で開始し、次のSQL構文を使用してみましょう:

ALTER TABLE Persons AUTO_INCREMENT=100

「人」のテーブルに新しいレコードを挿入するために、我々は「ID」欄所定の値に持っていません(自動的に一意の値が追加されます):

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

上記のSQL文は、「人」のテーブルに新しいレコードを挿入します。 「ID」の欄には、固有の値が与えられます。 「姓」の欄には、「氏名」欄が "Monsen"に設定されます、「ラース」に設定されます。


SQL Serverの構文

「ID」欄の「人」の表に次のSQL文は、自動インクリメントの主キーフィールドとして定義されます。

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の自動インクリメントを実行するためにIDENTITYキーワードを使用して。

上記の例では、開始値IDが1であり、そしてそれぞれの新しいレコードのために1だけインクリメントされます。

ヒント:IDENTITYの開始10と5刻みに「ID」列を指定するには、してくださいアイデンティティ(10,5)。

「人」のテーブルに新しいレコードを挿入するために、我々は「ID」欄所定の値に持っていません(自動的に一意の値が追加されます):

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

上記のSQL文は、「人」のテーブルに新しいレコードを挿入します。 「ID」の欄には、固有の値が与えられます。 「姓」の欄には、「氏名」欄が "Monsen"に設定されます、「ラース」に設定されます。


アクセスするための構文

「ID」欄の「人」の表に次のSQL文は、自動インクリメントの主キーフィールドとして定義されます。

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

自動インクリメントを実行するためにAUTOINCREMENTキーワードを使用してMS Accessの。

デフォルトでは、開始値オートインクリメントは1であり、そしてそれぞれの新しいレコードのために1だけインクリメントされます。

ヒント:開始10と5刻みに「ID」列を指定するには、AUTOINCREMENTに(10,5)をオートインクリメントしてください。

「人」のテーブルに新しいレコードを挿入するために、我々は「ID」欄所定の値に持っていません(自動的に一意の値が追加されます):

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

上記のSQL文は、「人」のテーブルに新しいレコードを挿入します。 「ID」の欄には、固有の値が与えられます。 「姓」の欄には、「氏名」欄が "Monsen"に設定されます、「ラース」に設定されます。


Oracle用の構文

Oracleでは、コードは少し複雑です。

あなたは(数字のシーケンスを生成する)シーケンスオブジェクトによって自動インクリメントフィールドを作成する必要があります。

以下をCREATE SEQUENCE構文を使用してください:

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

上記のコードは、1から始まり、1ずつインクリメントseq_personと呼ばれるシーケンス・オブジェクトを作成します。 オブジェクト・キャッシュの性能を改善するために10個の値。 キャッシュオプションが格納されるシーケンス値の数への高速アクセスを提供します。

「人」のテーブルに新しいレコードを挿入するには、我々は(この関数はseq_personシーケンスから次の値を取得)のnextval関数を使用する必要があります。

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

上記のSQL文は、「人」のテーブルに新しいレコードを挿入します。 「ID」欄には、seq_personから順に次の番号が割り当てられます。 「姓」の欄には、「氏名」欄が "Monsen"に設定されます、「ラース」に設定されます。