私は、さまざまなデータ ソースの不適切な扱いで受け継いだ問題を解決しようとしています。善良なユーザーと悪質なユーザーの両方を含むユーザー テーブルがあります。
create table `users`(
`user_id` int(13) NOT NULL AUTO_INCREMENT ,
`email` varchar(255) ,
`name` varchar(255) ,
PRIMARY KEY (`user_id`)
);
このテーブルでは、主キーは現在 user_id に設定されています。
悪意のあるユーザーのみを含む別のテーブル ('users_evil') があります (このテーブルのすべてのユーザーは最初のテーブルに含まれています) - このテーブルの user_id は最初のテーブルのユーザー ID に対応していません。
すべてのユーザーを 1 つのテーブルにまとめて、どれが善でどれが悪いかを単純にフラグ付けしたいと考えています。
私がしたいのは、ユーザー テーブルを変更し、デフォルトで 0 に設定されている列 ('evil') を追加することです。次に、'users_evil') テーブルからデータをダンプし、INSERT..ON DUPLICATE KEY UPDATE を実行します。このデータを最初のテーブルに挿入します (メールが一致する場合は 'evil'=1 を設定します)
問題は、「PK」が「email」ではなく user_id に設定されていることです。これを成功させるための提案、または別の戦略。
このステートメントを実行しても、別の列をステートメントの期間中のみ PK として扱うことはできますか?