db-torque-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Campbell, Justin" <jcampb...@profilesys.com>
Subject RE: how to set the PK manually?
Date Mon, 10 Feb 2003 23:20:58 GMT
Peter -

I would argue whether or not primary keys are auto-generated by definition.
This statement is true of "identity" (SQL Server terminology used here;
a.k.a. AutoNumber, ID, etc.) columns. However, a primary key can consist of
one or more non-identity columns (e.g. a varchar(50) value).

Personally, all my primary keys *are* identity columns (as this makes it
easier to isolate the actual "key" value and eases changes to the key
combination in the future), but this is not necessary (nor even recommended
by some schools of thought in DB schema design).

Just thought I'd clarify for folks out there as this statement may cause
confusion among the uninitiated.

Best of luck.

- Justin

-----Original Message-----
From: Peter S. Hamlen [mailto:phamlen@mail.com]
Sent: Monday, February 10, 2003 6:22 PM
To: Turbine Torque Users List
Subject: Re: how to set the PK manually?


Marc,

My understanding is that you cannot accomplish this if it's a primary
key.  Primary keys, by their definition, are generated automatically so
that there aren't any duplicates.

As Justin Campbell mentioned in a previous email, you might want to have
Table B have a foreign-key to table A (that's how most of us accomplish
this.)

The other option (if you're really talking about "extending") is to add
the columns for B into table A - and add a "type" column that indicates
whether the object in the table is of type A or B.

For example:

<table name="PaymentPlans">
  <column name="Type" description="Annual or Monthly"/>
  <column name="MonthlyBillDate" description="Only used for Monthly
types"/>
  <column name="AnnualBillDate" description="Only used for annual
plans"/>
  <column name="AmountDue" type="INTEGER"/>
 </table>

You can find more information about this in the "Inheritance" section of
Torque.

-Peter
On Thu, 2003-02-06 at 13:20, Marc Lustig wrote:
> Hi,
> 
> I'm creating a new instance (row) and set the PK to a certain value.
> (I need to do this because this table B extends another table A, so the PK
> in table B must be the same as in table A.)
> 
> My defaultIdMethod is "idbroker":
> <database defaultIdMethod="idbroker"...
> 
> And to make torque not generating the PK I set idMethod="none":
> <table name="B" idMethod="none">
> 
> Problem is when I trigger save() torque still generates a new PK and
assigns
> it. How comes that?
> How can I make torque not to auto-generate a new primary key when save()
is
> called?
> 
> Thanks!
> 
> Marc
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
> For additional commands, e-mail: torque-user-help@db.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org

Mime
View raw message