1. ホーム
  2. mysql

既存のテーブルにユニークキーを追加する方法 (非ユニークな行がある場合)

2023-10-22 07:03:46

質問

既存のテーブルに複雑なユニークキーを追加したい。キーには4つのフィールド( user_id , game_id , date , time ). しかし、テーブルにはユニークでない行があります。 私は、すべての重複する日付を削除し、その後、複雑なキーを追加することができることを理解しています。

もしかしたら、重複するデータをすべて検索することなく、別の解決策が存在するかもしれません。(一意な無視を追加する等)。

UPD mysqlの重複した行を削除する方法を検索してみたのですが、良い解決方法だと思います。 MySQLのクエリだけで重複を削除する?

どのように解決するのですか?

yAnTarのアドバイスのようにすることができます。

ALTER TABLE TABLE_NAME ADD Id INT AUTO_INCREMENT PRIMARY KEY

または

制約条件を追加することができます

ALTER TABLE TABLE_NAME ADD CONSTRAINT constr_ID UNIQUE (user_id, game_id, date, time)

しかし、既存のデータを失わないためには、indentityカラムを追加して、composite keyを作ればいいと思います。