PostgreSQL declarative partitioning










0















i am trying to understand how can declarative partitioning used in my particular case.



i have a table that look like



CREATE TABLE test
(
created timestamp without time zone NOT NULL,
tx bigint NOT NULL unique

) PARTITION BY RANGE (created);

CREATE TABLE test_part PARTITION OF test
FOR VALUES FROM ('2017-01-01') TO ('2017-02-01');


and, if i try to create it i get



DETAIL: UNIQUE constraint on table "test" lacks column "created" which is part of the partition key.


but, what i would like to do, it's to create a unique key on tx, and not on tx+created.



if i create a unique key (tx,created) then this it's valid, and it's not in my case



insert into test values('2017-01-02',1)
insert into test values('2017-01-01',1)


how can i create a unique index that doesn't contain the partition key?



in that case, i would like to store all the data partitioned based on created, but the txid should be unique on his own.










share|improve this question
























  • This is currently not possible.

    – a_horse_with_no_name
    Nov 13 '18 at 11:50















0















i am trying to understand how can declarative partitioning used in my particular case.



i have a table that look like



CREATE TABLE test
(
created timestamp without time zone NOT NULL,
tx bigint NOT NULL unique

) PARTITION BY RANGE (created);

CREATE TABLE test_part PARTITION OF test
FOR VALUES FROM ('2017-01-01') TO ('2017-02-01');


and, if i try to create it i get



DETAIL: UNIQUE constraint on table "test" lacks column "created" which is part of the partition key.


but, what i would like to do, it's to create a unique key on tx, and not on tx+created.



if i create a unique key (tx,created) then this it's valid, and it's not in my case



insert into test values('2017-01-02',1)
insert into test values('2017-01-01',1)


how can i create a unique index that doesn't contain the partition key?



in that case, i would like to store all the data partitioned based on created, but the txid should be unique on his own.










share|improve this question
























  • This is currently not possible.

    – a_horse_with_no_name
    Nov 13 '18 at 11:50













0












0








0








i am trying to understand how can declarative partitioning used in my particular case.



i have a table that look like



CREATE TABLE test
(
created timestamp without time zone NOT NULL,
tx bigint NOT NULL unique

) PARTITION BY RANGE (created);

CREATE TABLE test_part PARTITION OF test
FOR VALUES FROM ('2017-01-01') TO ('2017-02-01');


and, if i try to create it i get



DETAIL: UNIQUE constraint on table "test" lacks column "created" which is part of the partition key.


but, what i would like to do, it's to create a unique key on tx, and not on tx+created.



if i create a unique key (tx,created) then this it's valid, and it's not in my case



insert into test values('2017-01-02',1)
insert into test values('2017-01-01',1)


how can i create a unique index that doesn't contain the partition key?



in that case, i would like to store all the data partitioned based on created, but the txid should be unique on his own.










share|improve this question
















i am trying to understand how can declarative partitioning used in my particular case.



i have a table that look like



CREATE TABLE test
(
created timestamp without time zone NOT NULL,
tx bigint NOT NULL unique

) PARTITION BY RANGE (created);

CREATE TABLE test_part PARTITION OF test
FOR VALUES FROM ('2017-01-01') TO ('2017-02-01');


and, if i try to create it i get



DETAIL: UNIQUE constraint on table "test" lacks column "created" which is part of the partition key.


but, what i would like to do, it's to create a unique key on tx, and not on tx+created.



if i create a unique key (tx,created) then this it's valid, and it's not in my case



insert into test values('2017-01-02',1)
insert into test values('2017-01-01',1)


how can i create a unique index that doesn't contain the partition key?



in that case, i would like to store all the data partitioned based on created, but the txid should be unique on his own.







postgresql database-partitioning postgresql-11






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 13 '18 at 11:51









a_horse_with_no_name

297k46452548




297k46452548










asked Nov 13 '18 at 11:48









user3804873user3804873

2516




2516












  • This is currently not possible.

    – a_horse_with_no_name
    Nov 13 '18 at 11:50

















  • This is currently not possible.

    – a_horse_with_no_name
    Nov 13 '18 at 11:50
















This is currently not possible.

– a_horse_with_no_name
Nov 13 '18 at 11:50





This is currently not possible.

– a_horse_with_no_name
Nov 13 '18 at 11:50












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280398%2fpostgresql-declarative-partitioning%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280398%2fpostgresql-declarative-partitioning%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Use pre created SQLite database for Android project in kotlin

Darth Vader #20

Ondo