を削除します。問題のは、私はいくつかのテーブルを持っているSQLインデックス
- 表は、すべてでは
idstructure
とidpref
、fk_idask
、fk_idstructure
idask
id
とfk_id
との間のユニークなインデックスPREFERENCES(fk_idask
,fk_idstructure
)の表を参照してください。 問題は、私はPREFERENCESに2つの行がある場合です。
`IDPREF` `FK_IDASK` `FK_IDSTRUCTURE`
1 1 1
2 1 2
私が反転するようにしたい場合(スイッチ?)好みの間に2つの構造
`IDPREF` `FK_IDASK` `FK_IDSTRUCTURE`
1 1 **2**
2 1 **1**
FK_IDASK
とFK_IDSTRUCTURE
別れるの間に一意のインデックス、ための2つの設定で最初の更新結果と理由同じ構造で同じ質問をする。
これを防止するために、私はdeleteAndResave関数を作成し、これは今問題を解決します。
しかし、idassignation
とfk_idpref
のASSIGNATIONテーブルが到着しました。
ここで、ASSIGNATIONによってリンクされたプリファレンスを削除すると、制約が破損します。
私はすでに回避策を見つけましたが、醜いです。この問題には何らかの純粋な解決策がありますか?
ありがとうございます!
ps。テーブルインデックスととにかく!
を破る、私はあなたの外部キーが間違った道を指している推測している間に2つの構造体を反転。外部キーがオンになっているように見えます私の悪い英語のため申し訳ありません:(
最初の1つはスワップケースのためだけに働く。 (私の実際の言葉の場合、ユーザーは構造を選択することができ、誤って構造を交換することができますが、それはルールではありません)。 ちなみに、少し一般化した2番目の例は動作します...明日は試してみます。 – thebol
それは働いた!どうも! – thebol