ORACLE操作 ORACLE機能

[ORACLE] テーブルに主キーを追加する

投稿日:

主キーを追加するには、ALTER TABLE~ADD CONSTRAINT句を使用します。

主キー(プライマリーキー)は一時テーブルにも作成することができます。

構文

(主キーを追加する)
ALTER TABLE テーブル名 ADD CONSTRAINT 主キー名称 PRIMARY KEY (列1, 列2 ...);

通常テーブルでも一時テーブルでも、同じ構文です。

サンプル

例)テーブル「mytbl」に主キー「pk_mytable」(列:col1, col2)を追加する

実行結果
SQL> ALTER TABLE mytbl ADD CONSTRAINT pk_mytable PRIMARY KEY(col1, col2); 表が変更されました。

テンポラリーテーブルに作成時エラーが発生した場合

一時表に主キーを追加した時に、以下のようなエラーが発生した場合はtruncate tableを実行してから主キーの作成を行えばOKです。

実行例(w_tbl は一時表です。)
SQL> ALTER TABLE w_tbl ADD CONSTRAINT pk_w_tbl PRIMARY KEY(col1, col2); ALTER TABLE w_tbl ADD CONSTRAINT pk_w_tbl PRIMARY KEY(col1, col2) * ORA-14452: すでに使用されている一時表で索引を作成、変更または削除しようとしました。

例)truncate tableを行ってからプライマリーキーの追加を行う

実行例
SQL> truncate table w_tbl; 表が切り捨てられました。 SQL> ALTER TABLE w_tbl ADD CONSTRAINT pk_w_tbl PRIMARY KEY(col1, col2); 表が変更されました。

解説

  • 主キーを追加する時は、対象列のデータがユニーク(一意)かつNULLでない状態になっている必要があります。
    (データがゼロ件の場合はOKです。)
  • 主キーを変更したい場合は、一旦主キーを削除してから新規に主キーを作成します。
    (主キーを変更するコマンドはありません。)

スポンサーリンク

スポンサーリンク

-ORACLE操作, ORACLE機能
-,

執筆者:



comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

スポンサーリンク