1 つのコマンドで外部キー制約を持つ新しい列を追加する 質問する

1 つのコマンドで外部キー制約を持つ新しい列を追加する 質問する

外部キーとなる新しい列を追加しようとしています。 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 コマンドで実行する方法はありますか? うまくいく方法が思いつきませんでした。

ベストアンサー1

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);

他のいくつかのSQLでは、そのような操作を組み合わせることはできませんALTER TABLE。標準SQLでは、ステートメント内で1つの操作のみが許可されるALTER TABLEため、標準SQLでは2つの手順で実行する必要があります。

おすすめ記事