如果我有以下表格,是否可以在#TableNotes
中创建约束,以检查InstanceId
#Users
中是否存在TableId == 1
,并检查InstanceId
是否#Companies
如果TableId == 2
?{/ p>,{}}}中存在1}}
create table Users(
UserId int not null,
TableId int not null default 1
)
create table Companies(
CompanyId int not null,
TableId int not null default 2
)
create table TableNotes(
InstanceId int not null,
TableId int not null
)
有没有办法在不使用触发器的情况下完成此任务?
答案 0 :(得分:0)
我建议不要设计你的表,而是使用两列来保持参照完整性正确。我还假设您的意思是 TableId 而不是 ModelId 如果您仍然可以更改表格的设计,那么以下几行中的内容可能最适合您。
CREATE TABLE TableNotes(
TableId int not null,
UserId int constraint fk_Users_Table_id foreign key references Users(TableId),
CompanyId int constraint fk_Companies_Table_id foreign key references Companies(TableId)
)
如果这不是一个选项,正如你所说,你唯一的选择就是使用触发器来控制它。