外部キーとなる新しい列を追加しようとしています。 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つの手順で実行する必要があります。