すでにあるカラムにユニークキーやプライマルキーを追加するには次のSQL文を実行すればいい。
プライマルキーなら、
mysql> ALTER TABLE テーブル名 ADD PRIMARY KEY (カラム名);
ユニークキーなら、
mysql> ALTER TABLE テーブル名 ADD UNIQUE (カラム名);
もし、
ERROR 1170 (42000): BLOB/TEXT column ‘text_field’ used in key specification without a key length
のようなエラーが出たら、キーの長さを指定する必要があるので、
プライマルキーなら、
mysql> ALTER TABLE テーブル名 ADD PRIMARY KEY (カラム名(255以下のキーの長さ));
ユニークキーなら、
mysql> ALTER TABLE テーブル名 ADD UNIQUE (カラム名(255以下のキーの長さ));
こう記述するとエラーにならないはず。
しかし カラムが utf8mb4(一文字4バイト) の物に対してキーの長さを 255 にするとエラーが出る。
Specified key was too long; max key length is 767 bytes
(索引のキーが長すぎます。最大 767 バイトまでです。)
この場合、キー長さを 191 以下に下げればいい。
ALTER TABLE テーブル名 ADD PRIMARY KEY (カラム名(191));
4byte × 191 = 764byte
767byte 以内に収まる。