Joshua Gerrish wrote:

I'm not sure if this is the right place to ask about DBIx::Recordset, my apologies if it isn't.

The original author of DBIx::Recordset hangs out on his HTML::Embperl list and answers questions there:


http://perl.apache.org/embperl/pod/doc/Embperl.-page-12-.htm


The error I'm getting is this: "DB: ERROR Column: 'id' in where clause is ambiguous"


The problem, as far as I can see, is that I've got a recordset with two tables in it, and both have an id field. When it goes to update a field, it uses id as the primary key, but it doesn't qualify it with a table name, so the query bombs out.

Is there any way to specify which table is the "primary" table? For example, in my database I've got a table called referrers that has a 1-1 relationship with a table called accounts. referrers.account_ref points to accounts.id. But referrers also has an id field. I want to specify for the !PrimKey parameter that it is in table referrers.


Can't you table-qualify the field name? E.g.

'!PrimKey' => 'accounts.id'


Here's a copy of my setup parametrs:


$self->{set} = DBIx::Recordset->Setup({'!DataSource' => 'dbi:mysql:referrals',
'!Table' => 'referrers, accounts',
'!TabRelation' => 'referrers.account_ref = accounts.id',
'!PrimKey' => 'id',


'!Links' => ...

Any help would be cool.




Reply via email to