2

複数列の一意のキーが必要なデータベース テーブルがあります。ただし、これらの列の 1 つは TEXT で、長さが 1000 文字にもなります (そのため、varchar も機能しません)。TEXT 列のため、実際にはそれらの列に一意のキーを設定できません。重複を削除する良い方法は何ですか? もちろん、速いのはいいことです。

4

2 に答える 2

2

unique以下のように制約を追加します。

ALTER IGNORE TABLE table1
 ADD UNIQUE unique_name(column1, comlumn1, column3 ... Text);

IGNOREこれは、制約の作成中に重複を削除するのに役立ちます。

于 2012-11-01T17:42:18.227 に答える
2

最善の方法は、UNIQUE INDEX重複を避けるために a を使用することです。

一意として持つ必要がある列に新しい一意のキーを作成すると、テーブルの重複が自動的に消去されます。

ALTER IGNORE TABLE `table_name`
    ADD UNIQUE KEY `key_name`(`column_1`,`column_2`);

このIGNOREパーツでは、最初のエラーが発生した後にスクリプトを終了することはできません。デフォルトの動作は、重複を削除することです。

于 2012-11-01T17:44:32.937 に答える