電子書籍の厳選無料作品が豊富!

テーブル作成後に複数のカラムを対象にしたプライマリーキー制約を設定することはできるのでしょうか。

テーブル作成時であれば、次の方法により設定することができます。
※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

テーブルを削除し、再作成時にプライマリーキー制約を設定する方法によっても対応できますが、削除しなくてもこれを行える方法があるのか否かを知りたく、質問させていただきました。

A 回答 (1件)

MySQLは全然さわったことがないのですが、


http://dev.mysql.com/doc/refman/5.1/ja/alter-tab …
を見る限り、プライマリーキーを追加するだけなら

ALTER TABLE tbl_name
ADD PRIMARY KEY(col_name1, col_name2);

でいいのではないですか?
    • good
    • 1
この回答へのお礼

できました!
ありがとうございます!

お礼日時:2012/10/19 10:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!