This is certainly the best and most natural way to create a unique
primary key, and certainly the way I prefer, however the issue is what
to do in instances where you want to create a unique primary key on
insert, then return the key to the calling code in such a way that is
database independent. In other words, how can you write code that will
insert a row and return the ID of the row that was inserted if you
can't count on "SELECT @@identity" or "curval('id')"? It's all
explained in the weblog post:
http://markme.com/cantrell/weblog/index.cfm?m=3&d=17&y=2003
For the record, if you do not need your code to be database
independent, I would certainly advocate using an auto-incrementing
column rather than the techniques we are discussing here. But these
are some pretty interesting alternatives.
Christian
On Monday, March 17, 2003, at 05:35 PM, <[EMAIL PROTECTED]>
wrote:
> FlashGuy,
>
> This ID is for your DB right? Why not generate it as you insert your
> row of data? Create a PK say ID and make a sequence of it that auto
> increases on insert. This will give you uniqueness.
>
>
> Doug
>
>> -----Original Message-----
>> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
>> Sent: Monday, March 17, 2003 5:21 PM
>> To: CF-Talk
>> Subject: Re: Using createUUID()
>>
>>
>> Using the maxid trick has problems though. In some databases,
>> it will create a race condition. The only way to alleviate it
>> is to set the transaction isolation level to "serializable".
>>
>> ----- Original Message -----
>> From: Matt Robertson <[EMAIL PROTECTED]>
>> Date: Monday, March 17, 2003 2:53 pm
>> Subject: Re: Using createUUID()
>>
>>> Chris,
>>>
>>> I've used the method you describe for awhile and prefer it. Your
>>> post reminded me of another method that seems safe, but I never
>>> went there. CF_MaxID:
>>>
>>> http://tinyclick.com/?T02MT2
>>>
>>> You need a transaction block inside of a try/catch block inside of
>>> a loop to make it bombproof (:O) per the included docs, but it'll
>>> apparently work without adding a second indexed field to your table.
>>>
>>> -------------------------------------------
>>> Matt Robertson, [EMAIL PROTECTED]
>>> MSB Designs, Inc. http://mysecretbase.com
>>> -------------------------------------------
>>>
>>>
>>> ---------- Original Message ----------------------------------
>>> From: Christian Cantrell <[EMAIL PROTECTED]>
>>> Reply-To: [EMAIL PROTECTED]
>>> date: Mon, 17 Mar 2003 15:22:12 -0500
>>>
>>>> I posted some information on the createUUID function on my weblog
>>> today
>>>> based on an application I was working on over the weekend:
>>>>
>>>> http://www.markme.com/cantrell/weblog/index.cfm?m=3&d=17&y=2003
>>>>
>>>> Christian
>>>>
>>>> On Monday, March 17, 2003, at 07:55 AM, FlashGuy wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I need to generate a unique ID for every form I submit. The
>>> createUUID
>>>>> # generated is just too long for my needs. My ID only needs to
>>> be 10
>>>>> characters in length. Something like:
>>>>>
>>>>> CT-0001001
>>>>>
>>>>> I'm using MySQL. Can I have mysql generate the unique ID? How
>>> could I
>>>>> do this with CF?
>>>>
>>>>
>>>
>>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription:
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
This list and all House of Fusion resources hosted by CFHosting.com. The place for
dependable ColdFusion Hosting.
Unsubscribe:
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4