[Tep-j-general] Re: トランザクションについて

Back to archive index

hamada bungu****@leo*****
2005年 4月 8日 (金) 17:40:34 JST


こんにちわ。

On Fri, 08 Apr 2005 14:11:41 +0900
Naoko Kojima <kojim****@aveli*****> wrote:

> MysqlでトランザクションをするにはInnoDBにする必要があるようですが、
> どなたかoscommerce で InnoDBを使っていませんか。

osCではありませんが、個人用のお遊びスクリプト(^^;でInnoDBを使ったことが
あります。「一度トランザクションというモノを試してみたかった」ので。

当方は基本的に、データベースをこさえる時に「InnoDB」として作成しただけで
した。あとは、MyISAMとまったく一緒に扱いました。

トランザクションを使いたい箇所は

・事前に「SET AUTOCOMMIT=0」を投げて自動確定を停止
・フツーに処理
・途中で止めたい場合は「ROLLBACK」
・処理終了後「COMMIT」

としました。

(後で聞いたところによると、BEGIN〜COMMITという書き方がフツーらしーです)

> ほかにもInnoDBとMyISAMで記述が違う部分はたくさんあるのでしょうか。
> includes/function/database.php を変えると、結構簡単に変更できますでしょうか。

当方は、上記のように

「トランザクションしたいトコで処理用のSQLを投げる前後に『ココからココま
でがトランザクション』と書く」

だけだと思ってます→たぶんdatabase.phpはいじる必要ないかと。

あと、InnoDBを使われる場合は、my.cnf中のInnoDB関連設定にも気を使って適切
に設定しといた方がいいみたいです。

ファイルの分割のされ方とかメモリの食らい方とかが変わるみたいなんで。

以上、実にテキトーな話で申し訳ない(^^;んですが、もしなにかの参考になれば。

はまだ






Tep-j-general メーリングリストの案内
Back to archive index