DB2 自動インクリメントフィールドの実装方法
2022-01-19 17:28:08
生成された構文により、この値をどのように生成したいかの戦略をカスタマイズすることができます。
構文は以下の通りです。
生成された列の定義{常に|デフォルトで}。
として{identity identity rules | using your rules}。
まずは、前回作成したフォームを削除してみましょう。
db2 => drop table nomination
次に、別のテーブルを作成します。
Create table nomination
(
nominationID BIGINT Not Null Primary Key generated always as identity,
nominee char(6) Not Null,
nominator char(6) Not Null,
reason VARCHAR(250),
nomdate date Not Null,
categoryid INTEGER Not Null,
check (nominee ! = nominator) not enforced enable query optimization,
Foreign Key CategoryExists (categoryid)
references category (categoryid) on delete restrict
)
太字のテキストに注意してください。後でinsertやupdateを使って明示的に値を指定することができなくなります。
前回作成したテーブルを削除してみましょう。
db2 => drop table category
次に、フォームを作成します。
Create table category
(
CategoryID INTEGER Primary Key Generated Always as Identity
(Start With 1 Increment by 1 minvalue 0 maxvalue 999999999
No cycle cache 5 no order),
CateogryName VARCHAR(50) Not Null,
Eligibility VARCHAR(250)
)
太字のIDの文はDB2のマニュアルで調べれば、一目瞭然の自然な言葉ばかりです。
数字のパディングだけでなく、文字も扱いたい場合があるので、大文字に変換する例を以下に紹介します。
db2 => alter table category add column
UpperCatName VARCHAR(50) 常に (upper(CategoryName)) として生成されます。
これらについては、DB2のドキュメントに具体的な説明があります。
構文は以下の通りです。
生成された列の定義{常に|デフォルトで}。
として{identity identity rules | using your rules}。
まずは、前回作成したフォームを削除してみましょう。
db2 => drop table nomination
次に、別のテーブルを作成します。
コピーコード
コードは以下の通りです。
Create table nomination
(
nominationID BIGINT Not Null Primary Key generated always as identity,
nominee char(6) Not Null,
nominator char(6) Not Null,
reason VARCHAR(250),
nomdate date Not Null,
categoryid INTEGER Not Null,
check (nominee ! = nominator) not enforced enable query optimization,
Foreign Key CategoryExists (categoryid)
references category (categoryid) on delete restrict
)
太字のテキストに注意してください。後でinsertやupdateを使って明示的に値を指定することができなくなります。
前回作成したテーブルを削除してみましょう。
db2 => drop table category
次に、フォームを作成します。
コピーコード
コードは以下の通りです。
Create table category
(
CategoryID INTEGER Primary Key Generated Always as Identity
(Start With 1 Increment by 1 minvalue 0 maxvalue 999999999
No cycle cache 5 no order),
CateogryName VARCHAR(50) Not Null,
Eligibility VARCHAR(250)
)
太字のIDの文はDB2のマニュアルで調べれば、一目瞭然の自然な言葉ばかりです。
数字のパディングだけでなく、文字も扱いたい場合があるので、大文字に変換する例を以下に紹介します。
db2 => alter table category add column
UpperCatName VARCHAR(50) 常に (upper(CategoryName)) として生成されます。
これらについては、DB2のドキュメントに具体的な説明があります。
関連
-
DB2 現在のユーザーモードを表示し、ユーザーを切り替える方法
-
DB2コモンコマンドクイックリファレンス(メモ)
-
空のIBM DB2 ECOデータベースを作成する方法
-
DB2アクティビティログフルの原因を分析し、DB2ログフルの方法と回避策を解決します。
-
DB2 のデッドロック解決プロセスが完全に文書化されています。
-
DB2 現在のユーザーテーブル、フィールド、インデックスなどの詳細を取得します。
-
SQL Server 2008 Management Studio Expressのインストール方法
-
DB2 日付・時刻関数のアプリケーションノート
-
DB2 9 (Viper)クイックスタート
-
DB2 より一般的で実用的なSQL文のまとめ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン