WAGBY11 MANUAL / 02
IDを自動採番する
商品IDの入力を省いて登録時に一意なIDを割り当てる方法と、採番の開始値を指定する方法を説明します。
最終更新日:
1. このページで伝える機能
登録するたびにシステムがIDを割り当てる自動採番を利用できます。利用者がIDを考えて入力する必要がなく、保存後に割り当てられた値を確認できます。
この例では商品IDを自動採番します。手入力する商品コードとは別の項目です。
2. Wagby11で実現できること
2.1 IDを入力せずに登録する
商品の登録画面には、商品コード・商品名・単価の入力欄があります。自動採番する商品IDの入力欄はありません。「保存」を選ぶとIDが決まります。

2.2 保存後にIDを確認する
この例では、デスクライトに商品ID「1」、ブックスタンドに商品ID「2」が割り当てられました。検索一覧で別々のIDになっていることを確認できます。

この機能は内部IDの自動採番に使います。番号の欠番を詰めたり、欠番のない伝票番号を保証したりする機能として扱いません。親ごとの明細番号には、親子関係で扱う枝番を使います。
2.3 採番の開始値を指定する
新しく作る商品テーブルで「商品IDを1000から始めたい」といった場合は、自動採番の開始値を指定できます。空のテーブルへ最初に登録する商品のIDは1000、次は1001となります。開始値を指定しない場合は1です。上の画面例は、開始値を指定しない構成です。
指定できるのは、1~9223372036854775807の整数です。DBへ保存する自動採番の主キーにだけ指定できます。0、負数、小数、文字列、nullは指定できません。上限に到達すると、その後の採番は失敗します。
開始値を決めても、欠番のない連番になることは保証しません。また、他のモデルから参照する外部キーへ、この開始値が引き継がれるわけではありません。開始値は、IDを自動的に発行する側のモデルで指定します。
2.4 既存テーブルの採番位置を変える場合
開始値はテーブルを新規作成するときの設定です。既存テーブルの次回採番値を変更する設定ではありません。生成済みテーブルに対して開始値の設定を変更・削除すると、生成エラーになります。
3. AIへの指示例
最小限の指示例
商品IDを自動採番して、登録時に入力しなくてよいようにしてください。AIは主キーや画面表示との関係を類推して仕様を補います。新規テーブルで開始値を省略した場合は1です。1000などの番号から始めたい場合は、開始値も伝えます。開始値、保存後の確認方法、既存の業務コードの扱いも明確にしたい場合は詳細を伝えます。
より詳細な指示例
商品モデルの商品IDを、自動採番する主キーにしてください。
商品登録時に利用者が商品IDを入力せず、保存後の詳細と検索一覧で割り当てられたIDを確認できるようにしてください。
商品コードは引き続き手入力する業務コードとして残してください。
新しく作成する商品テーブルでは、自動採番の開始値を1000にしてください。既存テーブルがある場合は開始値を変更せず、保存済みIDと現在の採番位置を確認し、必要な移行方法を先に説明してください。
複数の商品を登録し、異なる商品IDが割り当てられることを確認してください。
既存の主キーと保存済みデータがある場合は、変更の影響を先に確認してください。4. 編集されるAppSchemaの例
entity.attributes内で、autoidとpk: trueを組み合わせます。単に数値型を指定するだけでは、自動採番の指定にはなりません。
- name: 商品ID
name_en: productId
type: autoid
pk: true
新規テーブルで1000から採番する場合は、同じ項目へautoid_start: 1000を追加します。開始値を指定する属性は、type: autoid、pk: trueで、DBへ保存する項目である必要があります。開始値は引用符で囲まず、整数として指定します。
- name: 商品ID
name_en: productId
type: autoid
pk: true
autoid_start: 1000
autoid_startを省略すると開始値は1です。既存テーブルの次回採番値を変更する目的で、この設定を変更・削除しません。
検索結果にもIDを表示する場合は、一覧にproductIdを含めます。
# functions 内の商品検索の一覧定義
list:
- name_en: productId
- name_en: productCode
- name_en: productName
- name_en: unitPriceautoidは64ビットの主キーをDB/JPAで自動採番する型です。登録リクエストにもIDを含めず、生成側に値の決定を任せます。
5. 参考資料
- guide:エンティティ属性タイプ(自動採番ID)
designer/docs/appschema/html/guide/03-model/02-fields.html- guide:モデルを作成する(主キー)
designer/docs/appschema/html/guide/03-model/01-create-model.html- reference:entity(登録時の主キー入力)
designer/docs/appschema/html/reference/06-entity.html