0

ユーザーが異なるプロジェクトを持つデータベースがあります。ユーザーは複数のプロジェクトを持つことができますが、プロジェクトは 1 人のユーザーしか持つことができません。

プロジェクトを削除せずにユーザーを削除しようとすると、問題が発生します。最初にプロジェクトを削除しない限り、MySql ではユーザーを削除できません。

ユーザーを削除してプロジェクトを保持する方法はありますか?

4

3 に答える 3

1

ユーザーとプロジェクトを含むテーブル間に外部キー関係がある場合は、プロジェクト テーブルの作成テーブルでこれを使用できます。

 FOREIGN KEY (user_id)
 REFERENCES users(user_id)
 ON DELETE SET NULL,

残念ながら、alter を使用して既存のテーブルでこの変更を行うことはできないため、テーブルを削除して再度作成する必要があります。

于 2011-11-22T22:32:16.283 に答える
1

外部キー制約を使用してスキーマを設定したため、プロジェクト テーブルの行は所有ユーザーの存在を主張します。

この種の「削除」は通常、ソフト削除によって行われます。特定の行を削除済みとしてマークしたい場合は、テーブルに「非アクティブ」列を追加し、それを「はい」またはゼロ以外に設定します。

于 2011-11-22T22:32:18.177 に答える
0

これを行うには、外部キー制約を変更する必要があります。これは、外部キーを持つ理由の 1 つであり、それらを壊さないためです。

于 2011-11-22T22:32:33.033 に答える