On 24 November 2014 at 09:55, Jirayut Nimsaeng <jira...@proteus-tech.com>
wrote:

> Hi,
>
> I'm using PostgreSQL BDR 9.4beta2 to test BDR capability right now.
>
> $ psql --version
> psql (PostgreSQL) 9.4beta2
>
> I used database name bdrdemo for BDR then I've created tables with this DDL
>
> CREATE TABLE DEPARTMENT(
>    ID SERIAL PRIMARY KEY      NOT NULL,
>    DEPT           CHAR(50) NOT NULL,
>    EMP_ID         INT      NOT NULL
> );
>
> I can confirm that both sides have table created with \d
>
> bdrdemo=# \d
>                 List of relations
>  Schema |       Name        |   Type   |  Owner
> --------+-------------------+----------+----------
>  public | department        | table    | postgres
>  public | department_id_seq | sequence | postgres
> (2 rows)
>
> then someone give me this command to make sure that serial primary key
> will have it own sequence so I put it on both nodes
>
> bdrdemo=# ALTER DATABASE bdrdemo SET default_sequenceam=department_id_seq;
> ALTER DATABASE
>
> Then I insert data with command
>
> bdrdemo=# insert into DEPARTMENT (DEPT, EMP_ID) values
> ('RANDOM_INSERT','1234');
> INSERT 0 1
>
> I can confirm it works on both side
>
> bdrdemo=# SELECT * FROM department;
>  id |                        dept                        | emp_id
> ----+----------------------------------------------------+--------
>   1 | RANDOM_INSERT                                      |   1234
> (1 row)
>
> But as you can see the id start from 1 instead of high number. I knew
> because I got this working before and if you insert data from another node
> I will get this error
>
> bdrdemo=# insert into DEPARTMENT (DEPT, EMP_ID) values
> ('RANDOM_INSERT','1234');
> ERROR:  duplicate key value violates unique constraint "department_pkey"
> DETAIL:  Key (id)=(1) already exists.
>
> Anyone has idea on this?
>

You'll need to use global sequences with BDR:
https://wiki.postgresql.org/wiki/BDR_Global_Sequences

Thom

Reply via email to