And this answer demonstrates perfectly to your managers that their conception 
of 'database' is broken. 

Sent from my phone, so apologies for any spelling errors, brevity, etc. 

On 15/09/2012, at 12:38, Darren Duncan <> wrote:

> Brian Katzung wrote:
>> If I recall correctly, I read in a cookbook somewhere (can't seem to find it 
>> now) that for rows with no primary key, you can use:
>> __PACKAGE__->set_primary_key(__PACKAGE__->columns);
>> (making the entire row be a multi-column primary key).
> Well that is indeed how things should work; when there is no primary or 
> unique key explicitly defined, there should be an implicit one ranging over 
> all the columns.  However, SQL doesn't work that way and would allow 
> duplicate rows, and so then the question is what behavior do you expect your 
> Perl layer to have?  If you edit a duplicate row, is it supposed to change 
> all copies or just one? -- Darren Duncan
>> On 2012-09-14 14:53, Derek W wrote:
>>> Ah, you meant just on Catalyst side, to tell it that the id column is
>>> the primary.  I didn't think of that.  Thanks!  I'll give that a shot.
>>> On Fri, Sep 14, 2012 at 11:40 AM, Robert Wohlfarth
>>> <> wrote:
>>>> On Fri, Sep 14, 2012 at 1:31 PM, Derek W <> wrote:
>>>>> Thanks, I figured that would probably fix it, but the problem is I am
>>>>> not allowed to make any changes to the DB structure itself.  I suppose
>>>>> I need to convince them why it's in the best interest to have a
>>>>> primary key...
>>>> You can set the primary key in the schema file. For example, add a line 
>>>> like
>>>> __PACKAGE__->set_primary_key( "id" ); to 
>>>> lib/MyApp/Schema/Result/
>>>> You do not need to change the database. DBIx::Class will then use id
>>>> whenever it wants a primary key.
>>>> -- 
>>>> Robert Wohlfarth
> _______________________________________________
> List:
> Listinfo:
> Searchable archive:
> Dev site:

Searchable archive:
Dev site:

Reply via email to