oracleにおいて、自動増加シーケンスを作成する方法は何ですか。
Oracleデータベースでは、以下の方法で自動増加シーケンスを作成することができます。
- CREATE SEQUENCE文を使用して、シーケンスを作成し、初期値、増分、最小値、最大値などの属性を指定します。
例えば、以下のステートメントは、名前がseq_idで、開始値が1で1ずつ増加し、最小値が1、最大値が9999999のシーケンスを作成します。
CREATE SEQUENCE seq_id
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999;
- 自動増分列を必要とするテーブルで、列のデフォルト値としてシーケンスを使用します。
例えば、employeesというテーブルにidという列を作成し、そのデフォルト値としてseq_idシーケンスを使用します。
CREATE TABLE employees (
id NUMBER DEFAULT seq_id.NEXTVAL,
name VARCHAR2(50),
salary NUMBER
);
- データを挿入する際、id列の値を指定しなくてもよく、データベースが自動的にシーケンスの次の値を使用します。
例えば、従業員テーブルにデータを挿入する場合、id列の値はseq_idシーケンスから自動的に取得されます。
INSERT INTO employees (name, salary) VALUES ('John Doe', 5000);
自動増加シーケンスはデータベースレベルであり、個々のテーブルに限定されていません。複数のテーブルで同じシーケンスを使用する場合は、CREATE TABLE ステートメントでシーケンスの名前をデフォルト値として指定するか、シーケンスのNEXTVAL 関数を使用して次の値を取得し、テーブルに挿入することができます。