小编Pau*_*son的帖子

外键引用同表中的主键

我有一个两列作为主键的表。这两列也是引用同一张表的外键:(这个表是前段时间离职的人创建的)

CREATE TABLE [dbo].[tblItemLink](
    [ItemListID] [int] NOT NULL,
    [ItemID] [int] NOT NULL,
 CONSTRAINT [PK_tblItemList] PRIMARY KEY CLUSTERED 
(
    [ItemListID] ASC,
    [ItemID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[tblItemLink]  WITH CHECK ADD  CONSTRAINT [FK_tblItemLink_tblItemLink] FOREIGN KEY([ItemListID], [ItemID])
REFERENCES [dbo].[tblItemLink] ([ItemListID], [ItemID])
GO

ALTER TABLE [dbo].[tblItemLink] CHECK CONSTRAINT [FK_tblItemLink_tblItemLink]
GO
Run Code Online (Sandbox Code Playgroud)

实际上,ItemID 指的是 tblItem.ItemID,而 ItemListID 在 DB 中的其他任何地方都找不到,但在应用程序中有相应的 enum。

主键是否有任何理由也是引用自身的外键(即一些未记录的性能改进),或者这只是一个错误?

sql foreign-keys sql-server-2008

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

foreign-keys ×1

sql ×1

sql-server-2008 ×1