2012-02-29 28 views
1

O_CLIENT列を削除する必要がある場合の正しい順序は?外部キーを持つSQL削除列

  1. 関連を削除します。その後、列O_CLIENTを削除
  2. は、あなたが最初の関係を削除する必要があり、さもなければ、あなたが外部キー制約エラーになってしまいます列o_CLIENT
CREATE TABLE client (
C_ID int PRIMARY KEY AUTOINCREMENT, 
.... 
); 

CREATE TABLE order (
O_ID int PRIMARY KEY AUTOINCREMENT, 
....... 
O_CLIENT long FOREIGN KEY REFERENCES client(C_ID) 
); 

答えて

4

を削除します。これはあなたに絡まっている参照を守るために組み込まれています(つまり、クライアント1は削除しますが、依然としてクライアント1に関連付けられた3つのオーダーがあります)。オーダーからクライアントを取得しようとすると、何も得られません。 )

カスケード削除を調べて、トップレベルの削除がすべての関係を自動的に削除するようにすることもできます。次に、すべてをクリアする1つの削除を実行するだけです。

1

外部キー列(つまり、別のテーブルのキーを参照する列)を削除する場合、通常は列を単に削除するだけで安全です。

この列に定義されている外部キー制約も削除されます。

1

これを手作業で行う場合は、まず関係を削除してから列を削除する必要があります。これをMySql Workbenchのようなツールで実行している場合、これがあなたのために処理されます。

+0

同じ秒に多くのコメント:) –

関連する問題