1. ホーム
  2. sql

[解決済み] 外部キー制約を持つ新しいカラムを1つのコマンドで追加する

2022-04-28 14:33:14

質問

外部キーとなる新しいカラムを追加しようとしています。このカラムと外部キー制約は、2つの別々の ALTER TABLE コマンドを使用します。

ALTER TABLE one
ADD two_id integer;

ALTER TABLE one
ADD FOREIGN KEY (two_id) REFERENCES two(id);

これを2つのALTER TABLEコマンドではなく、1つのALTER TABLEコマンドで行う方法はありますか?うまくいくものが思いつきませんでした。

解決方法は?

SQL関連の質問でよくあるように、それはDBMSに依存します。 いくつかのDBMSでは ALTER TABLE 演算をカンマで区切って実行します。例えば...

インフォミックス の構文があります。

ALTER TABLE one
    ADD two_id INTEGER,
    ADD CONSTRAINT FOREIGN KEY(two_id) REFERENCES two(id);

の構文は IBM DB2 LUW は同様で、キーワードADDを繰り返しますが、(図を正しく読めば)追加した項目を区切るカンマは必要ありません。

マイクロソフト SQLサーバー の構文があります。

ALTER TABLE one
    ADD two_id INTEGER,
    FOREIGN KEY(two_id) REFERENCES two(id);

を組み合わせることができないものもあります。 ALTER TABLE というような操作を行います。 標準SQLでは、単一の操作しか ALTER TABLE ステートメントを使用するため、標準SQLでは、2つのステップで実行する必要があります。