[解決済み] 外部キー制約を持つ新しいカラムを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つのステップで実行する必要があります。
関連
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] SQL Serverでストアドプロシージャ内のテキストを検索する
-
[解決済み] SQL Serverにおける関数とストアドプロシージャの比較
-
[解決済み] MySQLで外部キー制約を一時的に無効にするにはどうすればよいですか?
-
[解決済み] postgres: ユーザーをスーパーユーザーにアップグレードしますか?
-
[解決済み] SQL/mysql - Select distinct/UNIQUE but return all column?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] ALTER TABLE文に'ON DELETE CASCADE'を追加する方法
-
[解決済み] SQL Server でテーブルを参照している FOREIGN KEY 制約を調べるにはどうしたらいいですか?
-
[解決済み】MySQLで外部キー制約を追加できない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQLラーニングノート--オペランドには1つのカラムが必要です。
-
解決策:ユーザー root で localhost:3306 にある MySQL に接続できませんでした。
-
[解決済み] SQLのSELECTでIF...THENを実行するにはどうすればよいですか?
-
[解決済み] SQL Server - 挿入された行のIDを取得するための最良の方法は?
-
[解決済み] SQL Serverにおける関数とストアドプロシージャの比較
-
[解決済み] カラム名の変更 SQL Server 2008
-
[解決済み] 各グループの上位1行を取得
-
[解決済み] SQL Serverで結果をページ分割する最も良い方法は何ですか?
-
[解決済み] 既存のカラムにIDを追加する
-
[解決済み] Selectステートメントで特定のフィールドの重複を検索する