SQL AUTO INCREMENTフィールド
AUTO INCREMENTフィールド
自動インクリメントにより、新しいレコードがテーブルに挿入されたときに一意の番号が自動的に生成されます。
多くの場合、これは、新しいレコードが挿入されるたびに自動的に作成される主キー・フィールドです。
MySQLの構文
次のSQLステートメントは、"Personid"列を"Persons"テーブルの自動インクリメント主キー・フィールドとして定義します。
MySQLはAUTO_INCREMENT
自動インクリメント機能を実行するためのキーワード。
デフォルトでは、AUTO_INCREMENT
は1で、新しいレコードごとに1ずつ増加します。
AUTO_INCREMENT
シーケンスを別の値で開始するには、次のSQLステートメントを使用します。
「Persons」テーブルに新しいレコードを挿入するために、「Personid」列の値を指定する必要はありません (一意の値が自動的に追加されます)。
上記のSQLステートメントは、「Persons」テーブルに新しいレコードを挿入します。 「Personid」列には一意の値が割り当てられます。 "FirstName"列は"Lars"に設定され、"LastName" 列は"Monsen"に設定されます。
SQL Serverの構文
次のSQLステートメントは、"Personid"列を"Persons"テーブルの自動インクリメント主キー・フィールドとして定義します。
MS SQL Serverは、IDENTITY
キーワードを使用して自動インクリメント機能を実行します。
上記の例では、IDENTITY
は1で、新しいレコードごとに1ずつ増加します。
ヒント:"Personid" 列の値を10から開始して5ずつ増やすように指定するには、次のように変更します。IDENTITY(10,5)
.
「Persons」テーブルに新しいレコードを挿入するために、「Personid」列の値を指定する必要はありません (一意の値が自動的に追加されます)。
上記のSQLステートメントは、「Persons」テーブルに新しいレコードを挿入します。 「Personid」列には一意の値が割り当てられます。"FirstName"列は"Lars"に設定され、"LastName"列は"Monsen"に設定されます。
MS Accessの構文
次のSQLステートメントは、"Personid"列を"Persons"テーブルの自動インクリメント主キー・フィールドとして定義します。
MS Accessでは、AUTOINCREMENT
キーワードを使用してオートインクリメント機能を実行します。
デフォルトでは、AUTOINCREMENT
の開始値は 1 で、新しいレコードが作成されるたびに 1 ずつ増加します。
ヒント:"Personid" 列が値10から開始し、5ずつ増加するように指定するには、autoincrement を次のように変更します。AUTOINCREMENT(10,5)
。
「Persons」テーブルに新しいレコードを挿入するために、「Personid」列の値を指定する必要はありません (一意の値が自動的に追加されます)。
上記のSQLステートメントは、「Persons」テーブルに新しいレコードを挿入します。 「Personid」列には一意の値が割り当てられます。 "FirstName"列は"Lars"に設定され、"LastName"列は"Monsen"に設定されます。
Oracleの構文
Oracleでは、コードはもう少しトリッキーです。
シーケンスオブジェクトを使用して自動インクリメントフィールドを作成する必要があります (このオブジェクトは番号シーケンスを生成します)。
以下を使用しますCREATE SEQUENCE
構文:
上記のコードは、1から始まり1ずつ増加するseq_personという名前のシーケンス オブジェクトを作成します。また、パフォーマンスのために最大10個の値をキャッシュします。キャッシュ オプションは、アクセスを高速化するためにメモリに保存するシーケンス値の数を指定します。
"Persons"テーブルに新しいレコードを挿入するには、nextval関数を使用する必要があります(この関数は、seq_personシーケンスから次の値を取得します)。
上記のSQLステートメントは、「Persons」テーブルに新しいレコードを挿入します。「Personid」列には、seq_personシーケンスの次の番号が割り当てられます。"FirstName"列は "Lars"に設定され、"LastName"列は"Monsen"に設定されます。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。