• 追加された行はこの色です。
  • 削除された行はこの色です。
* INSERT / DELETE / UPDATE [#e95b7f63]

** INSERT [#v04fa531]
 $person_rs->create({
    name  => "Some Person",
    email => "somebody@someplace.com"
 $rs->create({
    name  => "taro",
    email => "taro@example.com"
 });
*** シリアル型のキーを取得(last_insert_id()) [#h69eb3c1]
 $user = $rs->create( { name  => "taro" } );
 $id =  $user->id;

** シリアル型のキーを取得(last_insert_id()) [#h69eb3c1]
 $person = $person_rs->create({
    name  => "Some Person",
    email => "somebody@someplace.com"
 });
 $person_id =  $person->person_id;
** UPDATE [#q20c4427]
 $rs->email('taro@example.com');
 $rs->update;
または
 $rs->update( { email => 'taro@example.com' } );
*** まとめてUPDATE [#sc58af41]
 $rs->search( { name => 'taro' } )->update_all( { email => 'taro@example.com' } );

http://search.cpan.org/~ash/DBIx-Class-0.08010/lib/DBIx/Class/ResultSet.pm#create
http://search.cpan.org/perldoc?DBIx::Class::ResultSet#create

** 条件にマッチした行をすべて削除する [#o71a7c5d]
 $rs->search({name =>'taro'})->delete_all;
** DELETE [#h93214b1]
*** まとめてDELETE [#o71a7c5d]
 $rs->search( { name =>'taro' } )->delete_all;

** 既存のレコードがあればそのrowオブジェクト、なければ新規のrowオブジェクトを返す [#k23cd99b]
*** find_or_new() [#mcbd6900]
 $user = $rs->find_or_new({ id => 10 },{ key => 'primary' });
 $user->name('taro');
 $user->update; # または $user->insert
- idが10のレコードが存在すればそのrowオブジェクトが、なければ新規のrowオブジェクト(idは10)が作られる。
- idがシリアル型(AUTO_INCREMENT)の場合、id => undef とすると、シリアル型に沿ったidのrowオブジェクトが作られる。
- レコードを修正する際は、既存のrowオブジェクトの場合はupdate()、新規のrowオブジェクトの場合はinsert()する。
- keyはprimary key以外のカラムを指定出来るが、カラムはユニーク制約を持つ必要がある。
- http://search.cpan.org/perldoc?DBIx::Class::ResultSet#find_or_new

*** find_or_create() [#o660afbe]
このメソッドを実行した時点で、DBにレコードがINSERTされる。その際、id以外のカラムはNULLになる。

*** update_or_new() [#c10b5b02]
 $user = $rs->update_or_new({ id => 10, name => 'taro' },{ key => 'primary' });
 $user->update; # または $user->insert
- idが10のレコードが存在すればそのrowオブジェクト(nameはtaro)が、なければ新規のrowオブジェクト(idは10、nameはtaro)が作られる。。
- http://search.cpan.org/perldoc?DBIx::Class::ResultSet#update_or_new

*** update_or_create() [#ha516c6b]
このメソッドを実行した時点で、DBにレコードがINSERTまたはUPDATEされる。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS