| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「DB2 ID列に自動採番」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
1行目: 1行目:
==DB2 ID列に自動採番==
+
==[[DB2 ID列に自動採番]]==
 
[[DB2]] | [[Database]] |  
 
[[DB2]] | [[Database]] |  
  
5行目: 5行目:
  
 
===概要===
 
===概要===
*ID 列を使用すると、表に追加される個々の行に対し、固有の数値を DB2・・ が自動的に生成
+
*ID 列を使用すると、表に追加される個々の行に対し、固有の数値を [[DB2]]・・ が自動的に生成
 
*個々の行の数値が固有であることを保証するには、ユニーク索引を作成するか、 主キーとして宣言
 
*個々の行の数値が固有であることを保証するには、ユニーク索引を作成するか、 主キーとして宣言
*GENERATED ALWAYS として定義された ID 列は、常に DB2 データベース・マネージャーが生成する値に指定
+
*GENERATED ALWAYS として定義された ID 列は、常に [[DB2]] データベース・マネージャーが生成する値に指定
*GENERATED BY DEFAULT として定義すると、アプリケーションが明示的に ID 列の値を指定できます。 アプリケーションが値を指定しないと、DB2 が値を生成
+
*GENERATED BY DEFAULT として定義すると、アプリケーションが明示的に ID 列の値を指定できます。 アプリケーションが値を指定しないと、[[DB2]] が値を生成
  
 
<blockquote>行が表に、指定された明示的な ID 列値で挿入される場合、 次の内部生成される値は更新されず、表内の既存の値と競合する可能性があります。</blockquote>
 
<blockquote>行が表に、指定された明示的な ID 列値で挿入される場合、 次の内部生成される値は更新されず、表内の既存の値と競合する可能性があります。</blockquote>
 
===ID 列を定義===
 
===ID 列を定義===
*CREATE TABLE ステートメントに AS IDENTITY 節を使用
+
*C[[R]]EATE TABLE ステートメントに AS IDENTITY 節を使用
 
*3 番目の列が ID 列
 
*3 番目の列が ID 列
 
*値 "100" が ID 列に入れられます。 この表に行が追加されるごとに、値は 5 ずつ増
 
*値 "100" が ID 列に入れられます。 この表に行が追加されるごとに、値は 5 ずつ増
  CREATE TABLE table (col1 INT,
+
  C[[R]]EATE TABLE table (col1 INT,
 
                       col2 DOUBLE,
 
                       col2 DOUBLE,
                       col3 INT NOT NULL GENERATED ALWAYS AS IDENTITY
+
                       col3 INT NOT NULL GENE[[R]]ATED ALWAYS AS IDENTITY
                                         (START WITH 100, INCREMENT BY 5))
+
                                         (STA[[R]]T WITH 100, INC[[R]]EMENT BY 5))

2020年2月16日 (日) 04:24時点における最新版

DB2 ID列に自動採番

DB2 | Database |

概要

  • ID 列を使用すると、表に追加される個々の行に対し、固有の数値を DB2・・ が自動的に生成
  • 個々の行の数値が固有であることを保証するには、ユニーク索引を作成するか、 主キーとして宣言
  • GENERATED ALWAYS として定義された ID 列は、常に DB2 データベース・マネージャーが生成する値に指定
  • GENERATED BY DEFAULT として定義すると、アプリケーションが明示的に ID 列の値を指定できます。 アプリケーションが値を指定しないと、DB2 が値を生成

<blockquote>行が表に、指定された明示的な ID 列値で挿入される場合、 次の内部生成される値は更新されず、表内の既存の値と競合する可能性があります。</blockquote>

ID 列を定義

  • CREATE TABLE ステートメントに AS IDENTITY 節を使用
  • 3 番目の列が ID 列
  • 値 "100" が ID 列に入れられます。 この表に行が追加されるごとに、値は 5 ずつ増
CREATE TABLE table (col1 INT,
                      col2 DOUBLE,
                      col3 INT NOT NULL GENERATED ALWAYS AS IDENTITY
                                        (START WITH 100, INCREMENT BY 5))