以下代码之间有什么区别?
1。
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
2。
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
在第二个代码中将名称添加到外键constraint(FK_PersonOrder)
中有什么用?
答案 0 :(得分:1)
ADD CONSTRAINT FK_PersonOrder
为前键提供了自定义名称,否则它将自动动态生成。
答案 1 :(得分:0)
这两个语句在功能上是相同的。给外键起一个名字(或对此问题的任何其他约束),使操作起来有点容易-当DML语句因为违反而失败时,它更容易理解,如果您选择这样做,也更容易删除它等
答案 2 :(得分:0)
出于同样的原因,我们命名任何东西;对其进行充分描述,以便我们了解其含义或作用
有时候,数据库引擎未明确说明有关关系另一端的任何详细信息,在这种情况下,插入地址表中要好得多,并且看到“约束'fk_person-addressid_address-id'违反”比“约束'fk_12ef3a2dc'被违反”,然后想到“ hmmm,12ef3a2dc /是地址表一个?还是工作角色一个?还是公司一个?。我只是去看看dB来找出。”