これに関連する他のいくつかの質問を見ましたが、それらはMySQLではありませんでした。
データベースはライブデータベースなので、テーブルを削除して再作成したくありません。単に列を一意でなくしたいだけです。これは本質的に許容度が低いため、問題が発生することはありません。
列がUNIQUE
句を使用して一意に定義されている場合は、次を使用します。
ALTER TABLE mytable DROP INDEX constraint_name
、または、制約に暗黙的に名前が付けられている場合は、
ALTER TABLE mytable DROP INDEX column_name
PRIMARY KEY
句を使用して一意に定義されている場合は、次を使用します。
ALTER TABLE mytable DROP PRIMARY KEY
ただし、テーブルがInnoDB
の場合、PRIMARY KEY
を削除すると、テーブルが暗黙的に再作成され、すべてのインデックスが再構築されます。これにより、テーブルがロックされ、かなり長い間アクセスできなくなる可能性があります。 。
これらはphpmyadminアプリの説明です(phpMyAdminを使用している場合)::
場合によっては、開発者(あなた)はそれを削除したくないかもしれませんが、単に「一意性」を「非一意性」に変更するだけです。
手順:
変更を加えたいコンテキストのテーブルに移動します
[構造]タブ(主に[参照]の横)をクリックします
答えはここで見つかりました:ソース: https://forums.phpfreaks.com/topic/164827-phpmyadmin-how-to-make-not-unique/
DROP
だけが一意のインデックスです。そこにすべきではないそれがライブDBであるという事実に問題があります。非常に大きなテーブルの場合、インデックスが削除されている間、一部のクエリを一時的にブロックすることがあります。しかし、それはshouldインデックスを追加した場合にのみ発生します。
ALTER TABLE table_name DROP INDEX index_name;