0

次の問題があります。TABLE_1、TABLE_2、および TABLE_3 の 3 つのテーブルがあります。

TABLE_1 と TABLE_2 の間には am:n 関係があるため、接続テーブルが存在するため、TABLE_1_2 と呼ぶことができます。

TABLE_2 と TABLE_3 の間には am:n 関係があるため、接続テーブルが存在するため、TABLE_2_3 と呼ぶことができます。

TABLE_1 から行を削除すると、接続されている他のテーブルのすべての行も削除されます。どうすればこれを処理できますか? SQLite は削除ステートメントの結合をサポートしていないことを読みました。

4

1 に答える 1

0

MS SQL では、この列に ON DELETE CASCADE CONSTRAINT を追加して、table1 と対応する列を変更することでこれを行うことができます。しかし、SQLite には ALTER COLUMN がなく、ALTER TABLE も MS SQL よりもはるかに機能的ではありません。だからこそ、あなたはおそらくしなければならないでしょう

  • table1 の名前を table3 に変更します
  • ON DELETE CASCADE CONSTRAINT と、既に使用した他のすべての制約を使用して、新しいテーブルを作成します。
  • 古いテーブルの内容を新しいテーブルにコピーします。
  • 古いテーブルを撤去

同様のトピックも参照してください。

于 2013-01-17T17:25:14.840 に答える