SQL入門チュートリアルマニュ...login
SQL入門チュートリアルマニュアル
著者:php.cn  更新時間:2022-04-12 14:15:40

SQL 自動インクリメント



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


AUTO INCREMENT フィールド

通常、新しいレコードが挿入されるたびに主キー フィールドの値を自動的に作成したいと考えています。

テーブルに自動インクリメントフィールドを作成できます。


MySQL の構文

次の SQL ステートメントは、「Persons」テーブルの「ID」列を自動インクリメント主キー フィールドとして定義します。 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

"persons" テーブルに新しいレコードを挿入するには、 「ID」列 指定した値(一意の値が自動的に追加されます):
INSERT INTO persons (FirstName,LastName)
VALUES ('Lars','Monsen')

上記のSQL文は、 「人物」テーブルの新しいレコード。 「ID」列には一意の値が割り当てられます。 「FirstName」列は「Lars」に設定され、「LastName」列は「Monsen」に設定されます。

SQL Server の構文

次の SQL ステートメントは、「Persons」テーブルの「ID」列を自動インクリメント主キー フィールドとして定義します。 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 を使用します自動インクリメントタスクを実行するためのキーワード。

上記の例では、IDENTITY の開始値は 1 で、新しいレコードごとに 1 ずつ増加します。


ヒント:
「ID」列が 10 で始まり 5 ずつ増加するように指定するには、ID を IDENTITY(10,5) に変更してください。
「Persons」テーブルに新しいレコードを挿入するには、「ID」列の値を指定する必要はありません (一意の値が自動的に追加されます):

INSERT INTO Persons (FirstName,LastName)

価値観 ('ラース'、'モンセン')

上記の SQL ステートメントは、「persons」テーブルに新しいレコードを挿入します。 「ID」列には一意の値が割り当てられます。 「FirstName」列は「Lars」に設定され、「LastName」列は「Monsen」に設定されます。


Access の構文

次の SQL ステートメントは、「Persons」テーブルの「ID」列を自動インクリメント主キー フィールドとして定義します。 ID 整数 PRIMARY KEY AUTOINCREMENT,

LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)


MS Access は、AUTOINCREMENT キーワードを使用して自動実行を実行します。インクリメントタスク。

デフォルトでは、AUTOINCREMENT の開始値は 1 で、新しいレコードごとに 1 ずつ増加します。

ヒント:

「ID」列が 10 で始まり 5 ずつ増加するように指定するには、autoincrement を AUTOINCREMENT(10,5) に変更してください。

「個人」テーブルに新しいレコードを挿入するには、「ID」列の値を指定する必要はありません (一意の値が自動的に追加されます):

INSERT INTO Persons (FirstName,LastName)

VALUES ('Lars', 'Monsen')

上記の SQL ステートメントは、「persons」テーブルに新しいレコードを挿入します。 「ID」列には一意の値が割り当てられます。 「FirstName」列は「Lars」に設定され、「LastName」列は「Monsen」に設定されます。

Oracle の構文

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


シーケンス オブジェクト (一連の数値を生成する) を介して自動インクリメント フィールドを作成する必要があります。

次の CREATE SEQUENCE 構文を使用してください:

CREATE SEQUENCE seq_person

MINVALUE 1

START WITH 1

INCREMENT BY 1
CACHE 10


上記のコードは、1 で始まり、次のように増加する seq_person という名前のシーケンス オブジェクトを作成します。 1.このオブジェクトはパフォーマンスを向上させるために 10 個の値をキャッシュします。キャッシュ オプションは、アクセス速度を向上させるために保存するシーケンス値の数を指定します。

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

INSERT INTO Persons (ID,FirstName,LastName)

VALUES (seq_person . nextval,'Lars','Monsen')

上記の SQL ステートメントは、「persons」テーブルに新しいレコードを挿入します。 「ID」列には、seq_person シーケンスの次の番号が割り当てられます。 「FirstName」列は「Lars」に設定され、「LastName」列は「Monsen」に設定されます。