Subject | Re: [firebird-php] Duplicate numbers |
---|---|
Author | Jochem Maas |
Post date | 2006-05-23T12:04:01Z |
Lester Caine wrote:
the transactions are overlapping and the results of the one that started first
is not being seen by the one start second... I really recommend a generator
for the TICKET_NO.
> I'm having a number of giggley little problems which are causing agro ait sounds like 2 different insertions (via 2 different requests) where
> few times a week across some sites while some never have the problem at all.
>
> The one that was spotted today is quite simple. Get ID from generator,
> Add ticket with that ID, then process ticket.
>
> "INSERT INTO TICKET ( TICKET_ID, TICKET_REF, TICKET_NO, OFFICE, ROOM,
> STAFF_ID, INIT_ID, CALLER_ID, APPLET )
> VALUES ( $ticid, 'NOW', (SELECT COALESCE(MAX(TICKET_NO)+1, 1) FROM
> CURRENT_DAY
> WHERE OFFICE = $office AND TICKET_NO BETWEEN 0 AND 9999),
> $office, 0, 0, 0, 0, ' ' )";
>
> I know that the MAX(TICKET_NO)+1 is not very safe, but the script seems
> to be getting run TWICE as I get TWO ID's, but the same TICKET_NO with
> an almost identical 'NOW'.
>
> Anybody any ideas what can be happening. Is it possible that PHP is
> running a script twice with two different transactions, from the same
> browser (IE of cause) and the second run does not see the commit of the
> first run? If that makes sens? I can't explain these occasional
> duplicates any other way, as once the ticket is added the user gets a
> 'clear ticket before adding a new one' and also the Add Ticket button is
> not present on the page that Add Ticket goes to!
the transactions are overlapping and the results of the one that started first
is not being seen by the one start second... I really recommend a generator
for the TICKET_NO.
>
> Anyone having similar strange niggles?
>