我有一个用visual studio打开的SQL数据库,我需要为已经创建的表添加一些约束。我需要一个外键,它已经有来自第三个表的外键。为了更好地解释,
表ANIMALI
需要来自表GABBIA
的外键,该表已经是表STANZA
中的外键。这是我提出的代码:
ALTER TABLE ANIMALE ADD CONSTRAINT REF_ANIMA_GABBI_FK FOREIGN KEY (n_stanza, n_gabbia) REFERENCES GABBIA(n_stanza, n_gabbia);
这给了我一个错误n_stanza is a column id not valid
。我认为这是因为类GABBIA
的ID取自加入n_gabbia和n_stanza,后者是类STANZA
中的键。
任何人都可以帮助我吗?
答案 0 :(得分:1)
为了使ALTER TABLE语句按写入方式工作,两个表(不是类)“ANIMALE”和“GABBIA”必须包含列“n_stanza”和“n_gabbia”。
此外,在“GABBIA”表中,对“n_stanza”和“n_gabbia”列必须有主键约束或唯一约束。也就是说,您需要表格“GABBIA”中的primary key (n_stanza, n_gabbia)
或unique (n_stanza, n_gabbia)
。