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 <[email protected]> > > 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 <[email protected]> > > > >> > >> 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. > >
