標記の通りで、Otogiri 0.17がリリースされました。主な変更は、僕が出したこの p-r(insert/fast_insert returns last_insert_id #15)でして、 insert()fast_insert() の戻り値を、従来の(あまり使われていなかった) $dbh->execute() の結果から、 last_insert_id() に変更しています。

これは非互換といえば非互換ですが、元の挙動を当てにしたコードはおそらく無いと思いますし、何より、

$db->insert('table_1', $table1_data);
my $table_1_id = $db->last_insert_id();

$db->insert('table_2', { table_1_id => $table_1_id, other_data1 => 'hogehoge' });
my $table_2_id = $db->last_insert_id();

$db->insert('table_3', { table_2_id => $table_2_id, other_data2 => 'fugafuga' });
my $table_3_id = $db->last_insert_id();
...

みたいな感じで、自動採番してるテーブルにいっぱい insert するようなスクリプトが、とても書きやすくなったと思うので、便利になったんじゃないかなぁ、と思います。 よろしくお使いください。

(追記 2016-02-04)

これだけだと、どのくらい嬉しいのかが分かりにくいかも。上記のコードがこうなります。

my $table_1_id = $db->insert('table_1', $table1_data);
my $table_2_id = $db->insert('table_2', { table_1_id => $table_1_id, other_data1 => 'hogehoge' });
my $table_3_id = $db->insert('table_3', { table_2_id => $table_2_id, other_data2 => 'fugafuga' });
...

insert をいっぱいやるスクリプトだと、結構分かりやすくなって良いのではないかな、と思います。よろしくお使いください。



blog comments powered by Disqus