2017-04-16 9 views

答えて

0

このための最適な解決策は、外部キーを正しく設定し、カスケード削除を使用することです。つまり、users_items.UserIDは、users.idを参照する外部キーとして宣言し、追加の制約オプションはON DELETE CASCADEです。親行が削除されると、カスケード削除オプションを使用してFKを含む行が自動的に削除されます。

詳しい情報はこちら:https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html

および検索はSO例との回答数を持っています。

+0

このようなコードを使用して削除できませんか? 'insert into users_achievements(UserID、AchievementID)UserID、50 FROM users_items WHERE ItemID = 1452' –

+0

たとえば、' users_items'のユニークな 'UserID'のリストを取得してから、ユニークな' id'を引くことができます'users'で見つけられ、残りのidを持つ行を削除します。これは少し複雑であり、最も重要なことは、別のクエリが必要であることに気付くでしょう。 これはちょっとした学習ですが、テーブルを外部キーと適切にリンクし、カスケードされた削除を使用することは、親の 'user'行が削除されたときに自動的に' users_items'行を削除するため、 。 –

+0

既に削除されたユーザーですか? –

関連する問題