複数のカラムを対象にしたプライマリキー制約の設定
テーブル作成後に複数のカラムを対象にしたプライマリーキー制約を設定することはできるのでしょうか。
テーブル作成時であれば、次の方法により設定することができます。
※col_name1及びcol_name2に設定したい場合
CREATE TABLE tbl_name
(col_name1 int NOT NULL, col_name2 int, col_name3 varchar(255),
PRIMARY KEY(col_name1, col_name2));
しかし、一旦テーブルを作成した後に、プライマリーキー制約を設定し忘れたことに気が付き、設定したい場合は、いかなる方法によりできるのでしょうか。
次の方法にて試みたものの、エラーが生じました。
【SQL文】
ALTER TABLE tbl_name
MODIFY col_name1 int, col_name2 int,
PRIMARY KEY(col_name1, col_name2);
【エラー内容】
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'col_name2 int,
PRIMARY KEY(col_name1, col_name2)' at line 1
テーブルを削除し、再作成時にプライマリーキー制約を設定する方法によっても対応できますが、削除しなくてもこれを行える方法があるのか否かを知りたく、質問させていただきました。