- ベストアンサー
オートインクリメントについて
カラムはidとnameです AUTO_INCREMENTをidにつけました googleで検索したら、「AUTO_INCREMENTをつけた場合はindexをつけなくてはいけない」 と書いてあったのですが、なぜindexをつけないといけないのでしょうか?indexなしだとよくないですか? 今あるidのカラムにsqlでindexを付けることはできますか? よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
mysql の場合、auto_increment 属性を付けたら、何らかのindexも設定しないとエラーになるので、create table 出来てるのなら、primary key とか付けているのでは?phpmyadmin で作成したのなら自動付加してくれてるのでしょう。 index必要性について マニュアル参照 http://dev.mysql.com/doc/refman/5.1/ja/create-table.html コマンドラインクライアントでチェックするなら、show構文で show create table `tbl_name`;
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
>AUTO_INCREMENTをつけた場合はindexをつけなくてはいけない 微妙な表現ですね AUTO_INCREMENT属性がつくのはユニーク属性をもったintのカラムです。 ユニーク属性自体にインデックスが設定されるので、 AUTO_INCREMENTを設定しているのであれば逆に必ずインデックスされていると 考えてよいと思います
お礼
お答えいただきありがとうございます >AUTO_INCREMENTを設定しているのであれば逆に必ずインデックスされていると 考えてよいと思います とゆうことは、インデックスはすでに付いているとゆうことですか? phpMyAdminで確認できればよかったんですが、indexらしきものが見当たらなかったので
お礼
お答えいただきありがとうございます 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