こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MYSQLのフィールドにユニークキーを設定する。

すでに作ってしまったテーブルにユニークキーを付けたいと考えています。最悪の場合、新しくカラムを作っての追加でもかまわないのですが、いろいろ試してもエラーが返されてしまいます。

codeというカラムにユニークキーを設定したいのですが、

alter table テーブル名 modify unique code;
alter table テーブル名 add unique code2;
alter table テーブル名 modify code unique;
alter table テーブル名 add code2 unique;
alter table テーブル名 modify code test unique;
alter table テーブル名 add code2 test unique;
alter table テーブル名 modify unique code test;
alter table テーブル名 add unique code2 test;
alter table テーブル名 modify (code unique);
alter table テーブル名 add (code2 unique);
alter table テーブル名 modify (code text unique);
alter table テーブル名 add (code2 text unique);


など、思いつく限り試し、グーグルで調べる限り調べたのですが、出てきたものをためしてもダメでした。

テーブルを作成した後、カラムにユニークキーを設定した経験のある方、どのように変更をしたのでしょうか?

投稿日時 - 2013-05-19 16:20:38

QNo.8095263

困ってます

質問者が選んだベストアンサー

create unique index code_index on テーブル名(code)
です。

投稿日時 - 2013-05-20 09:14:19

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

ちなみに後からuniqueを設定するとしても
すでにあるレコードの該当フィールドが「ユニークなデータで埋まっている」
のが前提になります。
2個以上同じデータがある場合は当たり前の話ですがユニーク属性を
後付けすることはできません

投稿日時 - 2013-05-20 09:22:38

ANo.2

お、見つけました。

http://dev.mysql.com/doc/refman/4.1/ja/create-index.html

投稿日時 - 2013-05-19 17:32:05

ANo.1

PC用のコマンドではないですが、似てるので使えれば、

create unique index code on テーブル名

alter table というのは既存のテーブルに新たな列を追加するコマンドです。

投稿日時 - 2013-05-19 16:33:30

お礼

残念。エラーが帰りました。
ありがとうございます。

投稿日時 - 2013-05-19 16:40:06

あなたにオススメの質問