[Dbix-class] Unexpected duplicate-key error from find_or_create
Lee Goddard
leegee at gmail.com
Sat Oct 11 22:43:23 BST 2008
I do not often find myself using DBIx::Class, so please forgive any
naivety or silliness in my question, but I would appreciate your help.
my $o = $schema->resultset( $field )->find_or_create(
value => $val
);
The above code has been working well over a variety of data, until just
now, when it died with the following words (where `331_chrs` represents
a string of 331 characters):
SELECT me.id, me.value FROM licence me WHERE ( ( me.value = ? ) ):
'331_chrs'
INSERT INTO licence (value) VALUES (?): '331_chrs'
DBIx::Class::ResultSet::find_or_create():
DBI Exception:
DBD::mysql::st execute failed:
Duplicate entry '%s' for key 2
[for Statement "INSERT INTO licence (value) VALUES (?)"] at ...
I have not yet taken to reading the source code, because I this is the
one error I had hoped to avoid by using find_or_create.
The MySQL table in question has only two columns, one PRIMARY and one
UNIQUE, and I'm developing with the fantastic DBIx::Class::Schema::Loader.
Have you seen such behaviour before? I am making a common error? Have I
misconstrued something in the manual? Should I be reading the source?
Could this be DBIx::Class::Schema::Loader...?
Thanks in anticipation of any pointers,
Lee
More information about the DBIx-Class
mailing list