Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

Auto-increment custom primary key

Avatar

Level 1

I have a requirement to create a schema with a custom primary key with auto-increment functionality.

I have created  the below schema.

<element autopk="false" desc="Terms and Conditions Table" label="Terms And Conditions"

           labelSingular="Terms And Conditions" name="terms_conditions" pkSequence="auto_custerms_conditions_sequence">

    <attribute autoIncrement="true" label="Terms Key" name="terms_key" type="long"/>

    <attribute label="Terms" name="terms" type="string"/>

    <attribute label="Terms Start Date" name="terms_start_date" type="datetime"/>

    <key internal="true" name="terms_key">

      <keyfield xpath="@terms_key"/>

    </key>

  </element>

Note that I have specified autoIncrement="true" in terms_key attribute definition.

But after inserting records, the "terms_key" is not getting auto-incremented.  Is defining schema with autopk=true and leveraging campaign generated id field is the only option?

Thanks

Bharath

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

Set the col to autoincrement per your rdbms. E.g. for postgres to alter your existing col, run this sql script (Administration/Configuration/SQL scripts), changing namespace to your table's namespace:

create sequence auto_custerms_conditions_sequence;

alter table namespaceterms_conditions alter iterms_key set default nextval('auto_custerms_conditions_sequence');

You should also remove superfluous pksequence and autopk attribs from the element node, and move key to the top per convention.

Thanks,

-Jon

View solution in original post

2 Replies

Avatar

Correct answer by
Community Advisor

Hi,

Set the col to autoincrement per your rdbms. E.g. for postgres to alter your existing col, run this sql script (Administration/Configuration/SQL scripts), changing namespace to your table's namespace:

create sequence auto_custerms_conditions_sequence;

alter table namespaceterms_conditions alter iterms_key set default nextval('auto_custerms_conditions_sequence');

You should also remove superfluous pksequence and autopk attribs from the element node, and move key to the top per convention.

Thanks,

-Jon

Avatar

Level 1

Thanks for your quick response. That worked.

The other workaround I tried is to delete the entire schema and recreate it. That also worked. Looks like autoIncrement=true only works if we add it while creating the scheme.

- Bharath