Tec*_*Guy 3 sql sql-server sql-server-2008
我有一张叫做的桌子Animal.AnimalId是主键,我想将列设置AnimalType_id为UNIQUE(我有一个AnimalType表,需要在这里设置一个外键)
ALTER TABLE Animal
ADD UNIQUE Animal.AnimalType_id int
Run Code Online (Sandbox Code Playgroud)
两个表中都有数据,因此我无法删除表.
但是这会导致错误:
消息102,级别15,状态1,行2
'''附近的语法不正确.
Dan*_*haw 17
请参阅文档以了解如何添加表约束.
ALTER TABLE Animal ADD CONSTRAINT UQ_Animal_AnimalTypeId UNIQUE (AnimalType_id)
Run Code Online (Sandbox Code Playgroud)
听起来像AnimalType_id是一个外键,所以我只是想通过使这个专栏独一无二来检查你是否理解这一点,你就是一对一的关系 - 你只能拥有每种类型的一只动物.
由于您在添加唯一约束时出错,我建议您实际需要外键而不是唯一约束:
ALTER TABLE Animal
ADD CONSTRAINT FK_Animal_AnimalType
FOREIGN KEY
(
AnimalType_id
)
REFERENCES AnimalType
(
id
)
Run Code Online (Sandbox Code Playgroud)
我不得不猜测AnimalType表名的名称和它的主键列名 - 如果它们不正确,请更改它们.
| 归档时间: |
|
| 查看次数: |
38979 次 |
| 最近记录: |