[Dbix-class] DBIx how to update_or_create a table with primary index is autoincrement ? getting erroneous data

Rajeev Prasad rp.neuli at yahoo.com
Thu Sep 27 17:22:02 GMT 2012


found this on web:
"So in summary, for tables with autoincrement primary keys ->find requires =
that you provide the primary key in the query, and ->create requires that y=
ou don't - this means that you cannot pass the same query hash to both meth=
ods and this is what ->update_or_create does."


so that means my update_or_create is never going to work on an empty table?=
??

really? I am stuck pl help.



________________________________
 From: Rajeev Prasad <rp.neuli at yahoo.com>
To: DBIx::Class and developer list <dbix-class at lists.scsys.co.uk> =

Sent: Thursday, September 27, 2012 11:55 AM
Subject: [Dbix-class] DBIx how to update_or_create a table with primary ind=
ex is autoincrement ? getting erroneous data
 =


friends,

I have a Table to update (empty right now), and the regularly 'update' exis=
ting info with changes AND add any new record which come up.

source data is coming from file. one record per line.

=A0=A0=A0 =A0=A0=A0 my @my_arr;=A0 #has 500 uniq entries

=A0=A0=A0 =A0=A0=A0 $schema->resultset('Mytable')->update_or_create(
=A0=A0=A0 =A0=A0=A0 {
=A0=A0=A0 =A0=A0=A0 =A0=A0=A0 field1 =3D> $my_arr[0],
=A0=A0=A0 =A0=A0=A0 =A0=A0=A0 field2 =3D> $my_arr[1],
=A0=A0=A0 =A0=A0=A0 =A0=A0=A0 field3 =3D> $my_arr[2],
=A0=A0=A0 =A0=A0=A0 =A0=A0=A0 ...
=A0=A0=A0 =A0=A0=A0 },
=A0=A0=A0 =A0=A0=A0 {key =3D>'primary'}=A0=A0=A0 #field_id, auto increment =
value this field is NOT supplied in variables above.
=A0=A0=A0 =A0=A0=A0 );


What is happening is: DBIX is first adding the 'first' record, then updatin=
g it with consecutive records!!! it is not creating a fresh record for any =
record in the file. so after it finishes running, I am left with one record=
 in Table which is updated 500 times, and has the last record in file as th=
e table record.

how to fix this?

_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co=
.uk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/dbix-class/attachments/20120927/bf3=
15dce/attachment-0001.htm


More information about the DBIx-Class mailing list