[PHP-users 23000]Re: MYSQLトランザクション

George Akimoto george @ web-masters.jp
2004年 8月 17日 (火) 22:55:15 JST


秋元です。

折角なのでちょいとお節介を。

>という事を[PHP-users 22988]で秋本さんがおっしゃっておりますが、
>このメールは黙殺したんですか??

遠藤さんが"MYISAMじゃないですよね?"ときかれた際もスルーされたみたい
ですが、分からないところをスルーするなら聞く意味がないでしょう(^_^;)
MySQLは日本語マニュアルもあるんだし、ヒントを元に考えて調べてくださいな。

># ちなみにmysql "Max" でなくてもちゃんとconfigureオプションで
># 指定して、必要な環境が(dbdの場合はbdbのライブラリが必要)あれば
># 作れます。

一応、"コンパイルした場合は関係ない"と書きましたが、紛らわしかったですね、
申し訳ない。
詳しくは http://www.mysql.com/doc/ja/InnoDB_in_MySQL_3.23.html を。

>mysql> create table innodb_t (val int) type=innodb;
>Query OK, 0 rows affected (0.04 sec)
># ↑innodb_t は type=innodb をつけてcreateした。
># !!! innodbは使えないはずなのにエラーは出なかった !!!

対応していない型のテーブルを使用しようとすると、代わりに MyISAM 型のテー
ブルが作成されます。

cf. http://www.mysql.com/doc/ja/Table_types.html

ということで、type=innodbを指定しテーブルを作ったなら、

mysql> SHOW TABLE STATUS;

としてテーブル情報を確認できます。
その中で Type が innoDB ならばinnoDBに対応しているし、自動的に MyISAM に
なっていれば対応していない、とすれば簡単に判別できるでしょう。

もしinnoDBに対応していないなら、PHP以前の問題です。MySQLのマニュアルでも
先に挙げたページに設定方法が書いてありますし、それを読むなり、MySQLのML
で質問するなりされたほうがいいんじゃないでしょうかねぇ。



PHP-users メーリングリストの案内