色々なデータの更新方法1 #08
こんにちわ!nekokakです!
八日目はDBIx::Skinnyでのデータ更新メソッドの説明です。
create
createメソッドを使うと指定したテーブルにデータをinsertする事が出来ます。
# INSERT INTO user (name) VALUES(?); # bind: nekokak my $row = $db->create('user',{name => 'nekokak'});
createメソッドの返り値はinsertしたデータのrowオブジェクトとなっていますので
$row->name;
と、アクセスする事が可能です。
bulk_insert
bulk_insertを利用すると、複数のデータを一気にinsertする事ができます。
同一テーブルに対して複数レコードまとめてinsertを行いたい場合に使用してください。
$db->bulk_insert('user', [ {name => 'nekokak'}, {name => 'yappo'}, {name => 'nekoya'}, ] );
createメソッドをinsertする回数分呼び出すよりも高速に動作します。
find_or_create
find_or_createメソッドを利用することで、
条件にあったレコードがDBに存在するかをチェックし、
DBにデータがなければinsertを発行して、結果をrowオブジェクトにして返す事ができます。
my $row = $db->find_or_create('user',{name => 'nekokak'});
update
updateメソッドでは既にあるレコードを更新します。
$db->update('user',{name => 'yappo'}, {id => 1});
一つ目の引数に対象となるテーブル名
二つ目の引数にupdateする内容
三つ目の引数にupdate対象となるレコードの条件
を指定します。
また、rowオブジェクトから直接updateをかける事も出来ます。
$row->update({name => 'yappo'});
rowオブジェクトからupdateをかける場合はtableと対象レコードの指定は省略します。
delete
deleteメソッドでは既にあるレコードを削除します。
$db->delete('user',{id => 1});
一つ目の引数に対象となるテーブル
二つ目の引数に削除する対象となるレコードの条件を指定します。
またdeleteメソッドもupdateメソッドと同様にrowオブジェクトから直接deleteをかける事も出来ます。
$row->delete;
rowオブジェクトからdeleteをかける場合はtableと対象レコードの指定は省略します。
今日はDBIx::Skinnyの更新系メソッドinsert/bulk_insert/update/deleteの説明をしました
明日は引き続きDBIx::Sknnyが持っている更新メソッドの説明をしたいと思います。
have a nice skinny days!:)