MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » September 2012

Re: Constraint based upon a separate file



fixed

Birgitta is correct...but so are you :)

As she mentions, check constraints can't do what the OP what's to
do...in anybody's DB afaik.

But given the scenario the OP has, check constraints aren't the right
thing to even try to use. Instead as you and Rob pointed out, the OP
needs to use referential (aka foreign key) constraints.

Check and referential are indeed (somewhat) different animals, but the
difference is that one is designed to support references between
tables and one is not :)

Charles

On Thu, Sep 20, 2012 at 6:20 AM, Dennis Lovelady <iseries@xxxxxxxxxxxx> wrote:
Sorry, I came into the middle of this. I should have known, without
checking, you'd be right. :)

Dennis Lovelady
http://www.linkedin.com/in/dennislovelady
--
"When I was a boy of fourteen, my father was so ignorant I could hardly
stand to have the old man around. But when I got to twenty-one, I was
astonished at how much he had learned in seven years."
-- Mark Twain


No I didn't - Foreign key constraints or referential integrities are a
different animal.
The original post was about check constraints. And in check constraints
you cannot reference to anything else than the same row in the same
table.

The following is are valid check constraints:
MyStatus in ('A', 'B', 'C')

OrderDate < DeliveryDate (assumed OrderDate and DeliveryDate are both
columns in the table)

But it is not allowed to replace the IN-List with a sub-select, i.e.
testing for valid stati in a different table.

Mit freundlichen Grüßen / Best regards

Birgitta Hauser

"Shoot for the moon, even if you miss, you'll land among the stars."
(Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok) "What
is worse than training your staff and losing them? Not training them
and keeping them!"

-----Ursprüngliche Nachricht-----
Von: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] Im Auftrag von Dennis Lovelady
Gesendet: Thursday, 20.9 2012 11:43
An: 'Midrange Systems Technical Discussion'
Betreff: RE: Constraint based upon a separate file

I must not understand what you mean, Birgitta.

Are you saying that DB2 does not support the following?

alter table my_table add foreign key (your_table_column) references
your_table

Dennis Lovelady
http://www.linkedin.com/in/dennislovelady
--
"We're proud of our restaurant. The public is invited to inspect at
any time. KEEP OUT!"
-- sign on kitchen door of a New Your City restaurant



A constraint can only compare columns or values within the same row
in
the same table.
If you need to compare a value with values located in other tables,
you may write a before insert/update triggers that compares the
incoming value with the allowed values and returns an error if the
value does not match.

Mit freundlichen Grüßen / Best regards

Birgitta Hauser

"Shoot for the moon, even if you miss, you'll land among the stars."
(Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training
them and keeping them!"

-----Ursprüngliche Nachricht-----
Von: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] Im Auftrag von
rpglist@xxxxxxxxxxx
Gesendet: Wednesday, 19.9 2012 23:27
An: midrange-l@xxxxxxxxxxxx
Betreff: Constraint based upon a separate file

I know how to add a typical check constraint where it ensures that
the
value matches a short list of codes, etc. I have been searching for
the past few hours to no avail for an example that shows how to add a
check constraint based upon the value in a separate file:

Quick and dirty example would be a state field of two characters that
has to match a predfined table of state abbrev's or a zipcode lookup
table...

Does anyone have any examples I can reference? I have been all over
the reference manual and so far haven't found what I'm looking for.

Thanks,

C

--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailing
list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
http://archive.midrange.com/midrange-l.


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailing
list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
http://archive.midrange.com/midrange-l.


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/midrange-l.


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/midrange-l.


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.






Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot COM and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact