プロが教える店舗&オフィスのセキュリティ対策術

添付画像」を基にコマンドプロンプトのコマンドを
以下としました。
画像には email はありますが、不要なので削除しています。
mysql> CREATE TABLE `members` (
-> `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
-> name VARCHAR(50) NOT NULL UNIQUE,
-> `password` varchar(100) NOT NULL,
-> `picture` varchar(255) NOT NULL,
-> `created` datetime NOT NULL,
-> `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-> PRIMARY KEY (`id`)
-> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
ERROR 1068 (42000): Multiple primary key defined

以上エラーを翻訳しますと
エラー 1068 (42000): 複数の主キーが定義されていますエラー 1068 (42000):

この場合 PRIMARY KEY 一つ消さないとダメですが
どちらを消したらいいでしょうか?

よろしくお願いいたします。

「エラー 1068 (42000): 複数」の質問画像

A 回答 (2件)

PRIMARY KEYが2箇所で指定されていますが、どちらもid列に対して単一列でです。


最初のPRIMARY KEYは、id列の定義の部分で指定していますよね。
単一列でキーを定義する場合は、この指定で問題ありません。
二つ目の
PRIMARY KEY(id)
は、複数列でキーを構成する場合に、ここで指定します。
例えば、
PRIMARY KEY(列1,列2)
といった指定です。
今回はid列の単一列のキーなので、二つ目のPRIMARY KEYの指定は不要であり削除してください。
    • good
    • 1
この回答へのお礼

ありがとうございました。
二つ目のPRIMARY KEYの指定は不要
PRIMARY KEY (`id`) を削除します。

お礼日時:2022/11/18 04:19

MySQL リファレンスマニュアより


> テーブルに存在できる PRIMARY KEY は 1 つだけです
参考)
https://dev.mysql.com/doc/refman/8.0/ja/create-t …

なので一つだけ書きましょう。
シングルカラムの場合ならどちらでもいいです
マルチカラムの場合なら PRIMARY KEY (key_part, ...) 句で
    • good
    • 1
この回答へのお礼

ありがとうございます。
少し難しいですが
徐々に理解していきます。
 今後ともよろしくお願いいたします。

お礼日時:2022/11/18 04:15

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

関連するカテゴリからQ&Aを探す