我已经敲了一个简单的桌子设计:
你可以看到, tAttachments 有图片, PlayerNames 和 PlayerNumbers 的外键。以下是对表格的详细介绍:
我需要在表上创建一个约束,指出 tAttachments 必须至少有1个外键集。 有谁知道我怎么能这样做?
答案 0 :(得分:0)
我不知道如何在数据库设计步骤中执行此操作,但您可以执行触发器 INSERT和触发器更新。通过这种方式,您可以检查是否遵守此约束。
类似的东西:
create trigger tAttachmentsCheck on tAttachments for insert, update as
begin
if exists (select *
from inserted i
where (i.ImageId <> NULL and PlayerNameId <> NULL)
or (i.ImageId <> NULL and PlayerNameId <> NULL and PlayerNumberId <> NULL)
or (i.ImageId <> NULL and PlayerNumberId <> NULL)
or (i.PlayerNumberId <> NULL and PlayerNameId <> NULL))
rollback transaction
end
答案 1 :(得分:0)
简单的检查约束:
ImageID is NULL and PlayerNameID is NULL and PlayerNumberID is NOT NULL
or ImageID is NULL and PlayerNameID is NOT NULL and PlayerNumberID is NULL
or ImageID is NOT NULL and PlayerNameID is NULL and PlayerNumberID is NULL