<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>DB &gt;&gt; MySQL</title><link>http://blogs.wankuma.com/pinzolo/category/1940.aspx</link><description>DB &gt;&gt; MySQL</description><managingEditor>THREE-ONE</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>THREE-ONE</dc:creator><title>MySQL と Rails でトランザクションがきかない</title><link>http://blogs.wankuma.com/pinzolo/archive/2008/12/13/163607.aspx</link><pubDate>Sat, 13 Dec 2008 17:00:00 GMT</pubDate><guid>http://blogs.wankuma.com/pinzolo/archive/2008/12/13/163607.aspx</guid><wfw:comment>http://blogs.wankuma.com/pinzolo/comments/163607.aspx</wfw:comment><comments>http://blogs.wankuma.com/pinzolo/archive/2008/12/13/163607.aspx#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pinzolo/comments/commentRss/163607.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pinzolo/services/trackbacks/163607.aspx</trackback:ping><description>こんな感じのテーブルがあります。
&lt;pre&gt;
show create table categories;
| categories | CREATE TABLE `categories` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `created_at` datetime default NULL,
  `updated_at` datetime default NULL,
  PRIMARY KEY  (`id`),
  KEY `index_categories_on_order` (`order`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 |
&lt;/pre&gt;
InnoDBなのでトランザクションがきくはずです。&lt;br /&gt;
ところが、script/console にて以下のようなコードを実行してみてもトランザクションがききません。
&lt;textarea name="code" class="ruby"&gt;
c1 = Category.new(:name =&amp;gt; "hoge")
c2 = Category.new
ActiveRecord::Base.transaction do
  c1.save!
  c2.save!
end
&lt;/textarea&gt;
Category モデルには validates_presence_of :name が設定されているので、c2.save! で例外が発生します。&lt;br /&gt;
ところが、c1 はきっちりテーブルに保存されています。&lt;br /&gt;
Category.transaction でやっても当然結果は同じ。&lt;br /&gt;
環境なのか、rails のバージョンなのか、設定ミスなのかなどの切り分けがちょっとまだできてませんが、ともかく原因不明。&lt;br /&gt;
・別のマシン（inspiron mini 以外）で試す&lt;br /&gt;
・別のバージョンの rails(2.1.2以外)で試す&lt;br /&gt;
あたりを試してみないと。&lt;img src ="http://blogs.wankuma.com/pinzolo/aggbug/163607.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>THREE-ONE</dc:creator><title>MySQL のデフォルトストレージエンジンを InnoDB に変換する</title><link>http://blogs.wankuma.com/pinzolo/archive/2008/09/12/156418.aspx</link><pubDate>Fri, 12 Sep 2008 21:15:00 GMT</pubDate><guid>http://blogs.wankuma.com/pinzolo/archive/2008/09/12/156418.aspx</guid><wfw:comment>http://blogs.wankuma.com/pinzolo/comments/156418.aspx</wfw:comment><comments>http://blogs.wankuma.com/pinzolo/archive/2008/09/12/156418.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pinzolo/comments/commentRss/156418.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pinzolo/services/trackbacks/156418.aspx</trackback:ping><description>まず、show engines; をする。&lt;br /&gt;
すると、サポートされているストレージエンジンとデフォルトがわかる。&lt;br /&gt;
サポートされているストレージエンジンは YES が設定されており、デフォルトには DEFAULT が設定されている。&lt;br /&gt;
これを変更するには /etc/my.cnf の [mysqld] セクションに default-storage-engine=INNODB を追加する。&lt;br /&gt;
&lt;br /&gt;
以上、メモ&lt;img src ="http://blogs.wankuma.com/pinzolo/aggbug/156418.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>THREE-ONE</dc:creator><title>InnoDB をより高速に</title><link>http://blogs.wankuma.com/pinzolo/archive/2008/09/12/156250.aspx</link><pubDate>Fri, 12 Sep 2008 09:57:00 GMT</pubDate><guid>http://blogs.wankuma.com/pinzolo/archive/2008/09/12/156250.aspx</guid><wfw:comment>http://blogs.wankuma.com/pinzolo/comments/156250.aspx</wfw:comment><comments>http://blogs.wankuma.com/pinzolo/archive/2008/09/12/156250.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pinzolo/comments/commentRss/156250.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pinzolo/services/trackbacks/156250.aspx</trackback:ping><description>&lt;A href="http://journal.mycom.co.jp/news/2008/09/11/054/index.html" target=_blank&gt;Google、MySQL改善提案 - マルチコアでInnoDBより高速に [マイコミジャーナル]&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;もとから MyISAM のほうがはえーじゃねーか、もしかして Maria の話か？&lt;BR&gt;と思って読んだら、「を」もしくは「が」が抜けてるだけだった。&lt;BR&gt;とりあえず、本家に導入待ちかな。&lt;img src ="http://blogs.wankuma.com/pinzolo/aggbug/156250.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>