dポイントプレゼントキャンペーン実施中!

カラムはidとnameです
AUTO_INCREMENTをidにつけました
googleで検索したら、「AUTO_INCREMENTをつけた場合はindexをつけなくてはいけない」
と書いてあったのですが、なぜindexをつけないといけないのでしょうか?indexなしだとよくないですか?

今あるidのカラムにsqlでindexを付けることはできますか?
よろしくお願いします

A 回答 (2件)

mysql の場合、auto_increment 属性を付けたら、何らかのindexも設定しないとエラーになるので、create table 出来てるのなら、primary key とか付けているのでは?phpmyadmin で作成したのなら自動付加してくれてるのでしょう。



index必要性について マニュアル参照
http://dev.mysql.com/doc/refman/5.1/ja/create-ta …

コマンドラインクライアントでチェックするなら、show構文で
show create table `tbl_name`;
    • good
    • 0
この回答へのお礼

お答えいただきありがとうございます

primary keyはidにつけてありました

primary keyを付けるとindexも設定していることになるのですか?

db始めてなので不安になってしまってひつこくてすいません

>show create table `tbl_name`;
便利ですね!さっそくつかってみました、しかし。indexらしきものがないです

CREATE TABLE `table` (
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

お礼日時:2013/03/30 23:47

>AUTO_INCREMENTをつけた場合はindexをつけなくてはいけない



微妙な表現ですね

AUTO_INCREMENT属性がつくのはユニーク属性をもったintのカラムです。
ユニーク属性自体にインデックスが設定されるので、
AUTO_INCREMENTを設定しているのであれば逆に必ずインデックスされていると
考えてよいと思います
    • good
    • 0
この回答へのお礼

お答えいただきありがとうございます

>AUTO_INCREMENTを設定しているのであれば逆に必ずインデックスされていると
考えてよいと思います


とゆうことは、インデックスはすでに付いているとゆうことですか?
phpMyAdminで確認できればよかったんですが、indexらしきものが見当たらなかったので

お礼日時:2013/03/29 23:43

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