db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Libor Jelinek <ljeli...@virtage.com>
Subject Re: Constraint already exists in Schema 'APP'
Date Fri, 06 Apr 2012 21:49:06 GMT
Yes, it can be. But its "feature, not bug". SQL is not like OOP - you can't
inherit or refer to another part. However some DBs support inheritance of
some limited sort...

2012/4/6 John Steele <programjsteele@gmail.com>

>
> I understand that constraints should be unique, but I don't understand why
> in
> that case they can't be reused or something like. If I have for example 100
> tables and 50 of those tables have a Foreign Key reference to the same
> table
> I have to create 50 different constraint ID's. That's extremely redundant,
> and annoying.
>
>
> liborjelinek wrote:
> >
> > Hello John!
> > Constaint name must be unique at schema level (in your case APP schema).
> > In
> > other words name for example first FK constaint as FK_PATIENT_PERSON_ID
> > and
> > second as FK_EMPLOYEE_PERSON_ID (FK_table_referencingColumn).
> >
> > Hope that helps!
> > Libor
> >
> > 2012/4/4 John Steele <programjsteele@gmail.com>
> >
> >>
> >> I have three tables Person, Patient, and Employee. Both Patient and
> >> Employee
> >> have a Foreign Key to Person; however, when creating the constraint for
> >> the
> >> second time I get the following error:
> >>
> >> Constraint 'PERSON_FK' already exists in Schema 'APP'.
> >>
> >> [code]
> >> CREATE TABLE PERSON (
> >>        PERSON_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START
> >> WITH
> >> 1,
> >> INCREMENT BY 1)
> >> );
> >>
> >> CREATE TABLE PATIENT (
> >>        PATIENT_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START
> >> WITH 1,
> >> INCREMENT BY 1),
> >>        PERSON_ID INTEGER NOT NULL
> >> );
> >>
> >> ALTER TABLE PATIENT
> >>        ADD CONSTRAINT PERSON_FK Foreign Key (
> >>                PERSON_ID)
> >>        REFERENCES PERSON (
> >>                PERSON_ID);
> >>
> >>
> >> CREATE TABLE EMPLOYEE (
> >>        EMPLOYEE_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START
> >> WITH 1,
> >> INCREMENT BY 1),
> >>        PERSON_ID INTEGER NOT NULL
> >> );
> >>
> >> ALTER TABLE EMPLOYEE
> >>        ADD CONSTRAINT PERSON_FK Foreign Key (
> >>                PERSON_ID)
> >>        REFERENCES PERSON (
> >>                PERSON_ID);
> >> [/code]
> >>
> >> What do you do in this situation? Do you only create on constraint and
> >> then
> >> reference it when using it again? If so, how?
> >>
> >> Thanks,
> >> John Steele
> >>
> >> --
> >> View this message in context:
> >>
> http://old.nabble.com/Constraint-already-exists-in-Schema-%27APP%27-tp33564657p33564657.html
> >> Sent from the Apache Derby Users mailing list archive at Nabble.com.
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/Constraint-already-exists-in-Schema-%27APP%27-tp33564657p33639530.html
> Sent from the Apache Derby Users mailing list archive at Nabble.com.
>
>

Mime
View raw message