Auto-increment custom primary key

Avatar

Avatar
Validate 1
Level 1
bharathn7761115
Level 1

Like

1 like

Total Posts

4 posts

Correct reply

0 solutions
Top badges earned
Validate 1
Boost 1
View profile

Avatar
Validate 1
Level 1
bharathn7761115
Level 1

Like

1 like

Total Posts

4 posts

Correct reply

0 solutions
Top badges earned
Validate 1
Boost 1
View profile
bharathn7761115
Level 1

27-01-2019

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

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Establish
MVP
wodnicki
MVP

Likes

977 likes

Total Posts

1,096 posts

Correct reply

516 solutions
Top badges earned
Establish
Affirm 500
Contributor
Shape 1
Give Back 100
View profile

Avatar
Establish
MVP
wodnicki
MVP

Likes

977 likes

Total Posts

1,096 posts

Correct reply

516 solutions
Top badges earned
Establish
Affirm 500
Contributor
Shape 1
Give Back 100
View profile
wodnicki
MVP

27-01-2019

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

Answers (1)

Answers (1)

Avatar

Avatar
Validate 1
Level 1
bharathn7761115
Level 1

Like

1 like

Total Posts

4 posts

Correct reply

0 solutions
Top badges earned
Validate 1
Boost 1
View profile

Avatar
Validate 1
Level 1
bharathn7761115
Level 1

Like

1 like

Total Posts

4 posts

Correct reply

0 solutions
Top badges earned
Validate 1
Boost 1
View profile
bharathn7761115
Level 1

28-01-2019

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