Hi Mark,

 

Below is details of database properties 

 

Database header page information: 

Version:                               WI-V2.5.4.26856 Firebird 2.5

                Flags                                      0 

                Checksum                           12345 

                Generation                         941170 

                Page size                             4096 

                ODS version                       11.2 

                Oldest transaction           941159 

                Oldest active                      941160 

                Oldest snapshot                               941160 

                Next transaction              941161 

                Bumped transaction       1 

                Sequence number          0 

                Next attachment ID        56 

                Implementation ID          26 

                Shadow count                   0 

                Page buffers                      0 

                Next header page           0 

                Database dialect               3 

                Attributes                           force write 

    Variable header data: 

                Sweep interval:                20000 

Allocated pages:               603479

 

*END*

 

On the affected table that is transaction table(‘trnTable’), I am using 
triggers to generate ID’s. Below I am pasting queries for generating the unique 
IDs 

 

Trigger that calls generator is fired on insertion:

CREATE TRIGGER 'BI_ID' FOR ‘trnTable’

ACTIVE BEFORE 

  INSERT

POSITION 0

AS

BEGIN

  IF (NEW._ID IS NULL) THEN

      NEW._ID = GEN_ID(_ID_GEN, 1);

END

 

Generator: 

CREATE GENERATOR _ID_GEN;

SET GENERATOR _ID_GEN TO 16594028

 

 

 

Thank you. 

 

With Regards,

Joje T. George

 

 

 

From: firebird-support@yahoogroups.com 
[mailto:firebird-supp...@yahoogroups..com] 
Sent: 02 April 2018 09:27 PM
To: firebird-support@yahoogroups.com
Subject: Re: [firebird-support] Auto-increment generating old ID's for insertion

 

  

On 2-4-2018 14:11, 'Joje' j...@codework-solutions.com 
<mailto:j...@codework-solutions.com>  [firebird-support] 
wrote:
> I have issue where auto-increment of ID column is generating older ID’s 
> that is already used in table.
> 
> Currently, my transaction table has around 16 million rows and *ID of 
> last inserted row is 16,594,027*.  While the *generator ID its 
> 16,593,965*.  As you can see the generator is generating ID’s that is 
> already present in table which causes *violation of PRIMARY or UNIQUE 
> KEY constraint "INTEG_105"*error on that table.
> 
> I managed to fix this issue, recently I am facing it frequently on this 
> transaction table, majority of the tables had number of recor ds are 
> more than 2 million or there is connectivity issues with DB.
> 
> Now, I am wondering is this related to Firebird DB or is there any other 
> issue.
Which version of Firebird are you using (full version please)?

Do you have code that generates its own IDs? Do you have code that tries 
to manipulate the value using `GEN_ID(<seq_name>, -1)` (or another 
negative value), `ALTER SEQUENCE seq_name RESTART WITH new_val` or `SET 
GENERATOR seq_name TO new_val`? Do you allow your code to specify its 
own IDs instead of using the sequence?

It could be a bug in Firebird, but we would really need to see a 
reproducible case.

Mark
-- 
Mark Rotteveel



  • [firebird-support... 'Joje' j...@codework-solutions.com [firebird-support]
    • Re: [firebir... Lester Caine les...@lsces.co.uk [firebird-support]
      • RE: [fir... 'Joje' j...@codework-solutions.com [firebird-support]
    • Re: [firebir... Mark Rotteveel m...@lawinegevaar.nl [firebird-support]
      • RE: [fir... 'Joje' j...@codework-solutions.com [firebird-support]
        • Re: ... Lester Caine les...@lsces.co.uk [firebird-support]
        • Re: ... Dimitry Sibiryakov s...@ibphoenix.com [firebird-support]

Reply via email to