At 1:31 PM +1000 6/12/01, Noel Clarkson wrote:
>I don't know about MySQL 3.22.32 but in 3.23.27 if you create a table with
>a primary key of two fields, one of which is an auto increment field then
>you will get the behaviour you are looking for (ie the auto inc will start
>at 1 for each different value in the other field).  I don't have 3.22.x
>installed and am not sure if this has been a change in later versions, but
>you could give it a go and see what happens (there is an example of what I
>did below).

It should work.  This change was made in 3.22.25.


>
>cheers,
>
>noel
>
>
>mysql> create table testme(a varchar(3) not null, b integer auto_increment
>not n
>ull, PRIMARY KEY(a,b));
>mysql> insert into testme values("hee", null);
>mysql> select * from testme
>mysql> insert into testme values("hee", null);
>mysql> select * from testme;
>+-----+---+
>| a   | b |
>+-----+---+
>| hee | 1 |
>| hee | 2 |
>+-----+---+
>2 rows in set (0.00 sec)
>
>mysql> insert into testme values("ha", null);
>mysql> select * from testme;
>+-----+---+
>| a   | b |
>+-----+---+
>| ha  | 1 |
>| hee | 1 |
>| hee | 2 |
>+-----+---+
>3 rows in set (0.01 sec)
>
>On Tuesday, June 12, 2001 11:33 AM, Chris Bolt [SMTP:[EMAIL PROTECTED]]
>wrote:
>Ver 8.0, Distrib 3.22.32
>
>>  > I have a customer file, keyed by an auto-increment customer
>>  > number.  Customers can have orders.  The order file is keyed by an
>>  > auto-increment order sequence number, which works fine, but is not
>>  > convenient.  Rather, I would like the order sequence number to start at
>1
>>  > for each customer, and have two keys on the order file, customer id,
>>  > followed by order sequence.  I would like the database to enforce
>>  > uniqueness on this key pair.
>>  >
>>  > I don't think the built in auto-increment field can support this kind
>of
>>  > mechanism, so - What is a safe, efficient way to find the
>>  > customers highest
>>  > order number, increment it by one, and write the new order
>>  > record?  I need
>>  > to be absolutely sure that if ten people enter a new order all
>>  > for the same
>>  > customer at (nearly) the same time, they all get a unique order number.
>>
>>  Create a single unique index on both columns (CREATE UNIQUE INDEX
>>  ordernumber ON table (customerid, orderid);) and use LOCK TABLES when
>  > creating the order id.


-- 
Paul DuBois, [EMAIL PROTECTED]

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to