I do not want to switch the idbroker method to require the primary key column to also require the autoIncrement attribute. I see it as redundant. If you have
<table idMethod=idbroker ...> <column primaryKey=true ...> You have all the information needed to determine which column needs a generated value. A table using idbroker to generate a unique key should only have one primary key column. I view native case similarly. Why do you have multiple column primary keys if the column can be uniquely identified using only the generated one? If there is only one, then it is obvious which column should be assigned the generated value. john mcnally On Fri, 2002-07-05 at 21:12, Stephen Haberman wrote: > I've just started working with MySQL, but the other database I'm > familiar with (mssql) treats the primary key and the autoincrement > attributes of a field separately. And while I certainly don't mean to > say what mssql implements is the right way, I had been under the > impression that in general db terms they really are separate things. > E.g. there could be instances where you want an integer primary key, but > don't want it autoincrement. > > Also, the native/idbroker thing is merely whether the database handles > autoincrementing or the Torque idbroker does, I don't think it should > give any indication as to which columns should or should be not > autoincremented. > > James said that if you use idbroker with MySQL integer primary keys, > they do autoincrement regardless of whether autoIncrement is set in the > schema. > > To me, this is the bug. Autoincrementing should only be done if > autoIncrement=true is set on a column. Can this patch be rolled back and > the idbroker thing be changed so that it doesn't autoincrement whenever > it sees an integer primary key? > > (I'm assuming that there is not a MySQL-specific reason that users would > assume native MySQL primary keys would be autoincrement as compared to, > say, mssql native primary keys which would not. E.g. MySQL automatically > treats integer primary keys as autoincrement, but given that this patch > is necessary, I assume there isn't). > > Thanks, > Stephen > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > > Sent: Thursday, July 04, 2002 10:29 AM > > To: [EMAIL PROTECTED] > > Subject: cvs commit: > jakarta-turbine-torque/src/templates/sql/base/mysql > > columns.vm > > > > mpoeschl 2002/07/04 08:29:17 > > > > Modified: src/templates/sql/base/mysql columns.vm > > Log: > > patch by James Turner <[EMAIL PROTECTED]> > > Assuming folks think (as I do) that native MySQL primary key columns > should be > > autoincrementing, here's a patch that implements it. > > > > Revision Changes Path > > 1.4 +5 -0 > jakarta-turbine-torque/src/templates/sql/base/mysql/columns.vm > > > > Index: columns.vm > > > > ===================================================== > > ============== > > RCS file: /home/cvs/jakarta-turbine- > > torque/src/templates/sql/base/mysql/columns.vm,v > > retrieving revision 1.3 > > retrieving revision 1.4 > > diff -u -r1.3 -r1.4 > > --- columns.vm 8 Nov 2001 04:31:30 -0000 1.3 > > +++ columns.vm 4 Jul 2002 15:29:17 -0000 1.4 > > @@ -4,6 +4,11 @@ > > #set ( $default = $col.DefaultSetting ) > > #set ( $nullString = $strings.select($col.isNotNull(), > > $dbprops.get("NOTNULL"),"") ) > > #set ( $autoIncrement = $strings.select($col.isAutoIncrement(), > > $dbprops.get("AUTOINCREMENT"),"") ) > > + #if ((($database.getDefaultIdMethod() == "native") && > ($table.getIdMethod() > > == "")) || ($table.getIdMethod() == "native")) > > + #if ($col.isPrimaryKey() && ($col.Type == "INTEGER")) > > + #set ( $autoIncrement = $dbprops.get("AUTOINCREMENT")) > > + #end > > + #end > > #set ( $entry = "$col.Name $type $size $default $nullString > $autoIncrement," ) > > $strings.sub($strings.collapseSpaces($entry)," ,",",") > > #end > > > > > > > > > > -- > > To unsubscribe, e-mail: <mailto:turbine-torque-dev- > > [EMAIL PROTECTED]> > > For additional commands, e-mail: <mailto:turbine-torque-dev- > > [EMAIL PROTECTED]> > > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
