Is there Such Thing As The Opposite of Unique Constraint
I want to be constrain my database with what is essentially the opposite of a UNIQUE constraint. I want to only be able to add a new row if some combination of fields has been added before.
Note: I am working within postgres.
Take the following datasets for example. I want a "NON UNIQUE" constraint on the following:
1, a, 1
1, a, 1
1, b, 1
I should not have been able to add the row (1, b, 1) since it has not appeared before. There are also other fields I don't want to constrain so it's not like all the entries are identical.
This may be a separate question, but I would also like to add the constraint that all rows with the same value in one column (i.e. a in the above example) have the same value in another.
So I want this to be impossible
1, a, 1
1, a, 1
0, a, 1
But this is ok
1, a, 1
1, a, 1
0, b, 1
I have looked around pretty heavily and the opposite of this is possible
with unique constraints, but I can't find anything that works for this.
Check constraints will only look at the row in question, and won't take into account the entire table's entries like a unique constraint would.
Is this even possible? Or is this now out of the realms of Postgres functionality, and must be done in-application.
postgresql constraint
New contributor
JDGale8 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
I want to be constrain my database with what is essentially the opposite of a UNIQUE constraint. I want to only be able to add a new row if some combination of fields has been added before.
Note: I am working within postgres.
Take the following datasets for example. I want a "NON UNIQUE" constraint on the following:
1, a, 1
1, a, 1
1, b, 1
I should not have been able to add the row (1, b, 1) since it has not appeared before. There are also other fields I don't want to constrain so it's not like all the entries are identical.
This may be a separate question, but I would also like to add the constraint that all rows with the same value in one column (i.e. a in the above example) have the same value in another.
So I want this to be impossible
1, a, 1
1, a, 1
0, a, 1
But this is ok
1, a, 1
1, a, 1
0, b, 1
I have looked around pretty heavily and the opposite of this is possible
with unique constraints, but I can't find anything that works for this.
Check constraints will only look at the row in question, and won't take into account the entire table's entries like a unique constraint would.
Is this even possible? Or is this now out of the realms of Postgres functionality, and must be done in-application.
postgresql constraint
New contributor
JDGale8 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
I want to be constrain my database with what is essentially the opposite of a UNIQUE constraint. I want to only be able to add a new row if some combination of fields has been added before.
Note: I am working within postgres.
Take the following datasets for example. I want a "NON UNIQUE" constraint on the following:
1, a, 1
1, a, 1
1, b, 1
I should not have been able to add the row (1, b, 1) since it has not appeared before. There are also other fields I don't want to constrain so it's not like all the entries are identical.
This may be a separate question, but I would also like to add the constraint that all rows with the same value in one column (i.e. a in the above example) have the same value in another.
So I want this to be impossible
1, a, 1
1, a, 1
0, a, 1
But this is ok
1, a, 1
1, a, 1
0, b, 1
I have looked around pretty heavily and the opposite of this is possible
with unique constraints, but I can't find anything that works for this.
Check constraints will only look at the row in question, and won't take into account the entire table's entries like a unique constraint would.
Is this even possible? Or is this now out of the realms of Postgres functionality, and must be done in-application.
postgresql constraint
New contributor
JDGale8 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
I want to be constrain my database with what is essentially the opposite of a UNIQUE constraint. I want to only be able to add a new row if some combination of fields has been added before.
Note: I am working within postgres.
Take the following datasets for example. I want a "NON UNIQUE" constraint on the following:
1, a, 1
1, a, 1
1, b, 1
I should not have been able to add the row (1, b, 1) since it has not appeared before. There are also other fields I don't want to constrain so it's not like all the entries are identical.
This may be a separate question, but I would also like to add the constraint that all rows with the same value in one column (i.e. a in the above example) have the same value in another.
So I want this to be impossible
1, a, 1
1, a, 1
0, a, 1
But this is ok
1, a, 1
1, a, 1
0, b, 1
I have looked around pretty heavily and the opposite of this is possible
with unique constraints, but I can't find anything that works for this.
Check constraints will only look at the row in question, and won't take into account the entire table's entries like a unique constraint would.
Is this even possible? Or is this now out of the realms of Postgres functionality, and must be done in-application.
postgresql constraint
postgresql constraint
New contributor
JDGale8 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
JDGale8 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
JDGale8 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked 39 secs ago
JDGale8JDGale8
1
1
New contributor
JDGale8 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
JDGale8 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
JDGale8 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "182"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
});
}
});
JDGale8 is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f231296%2fis-there-such-thing-as-the-opposite-of-unique-constraint%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
JDGale8 is a new contributor. Be nice, and check out our Code of Conduct.
JDGale8 is a new contributor. Be nice, and check out our Code of Conduct.
JDGale8 is a new contributor. Be nice, and check out our Code of Conduct.
JDGale8 is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Database Administrators Stack Exchange!
- 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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f231296%2fis-there-such-thing-as-the-opposite-of-unique-constraint%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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