首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个表的两个外键都指向自个儿

2012-08-24 
一个表的两个外键都指向自己我看到一段SQL,很不理解一个表为什么要建两个都指向自己的外键。。。CREATE TABLE

一个表的两个外键都指向自己
我看到一段SQL,很不理解一个表为什么要建两个都指向自己的外键。。。

CREATE TABLE [dbo].[tblSession](
[iUniqueId] [int] IDENTITY(1,1) NOT NULL,
[iUserUniqueId] [int] NOT NULL,
[nvcSessionId] [nvarchar](100) NOT NULL,
[dtSessionStartTime] [datetime] NOT NULL,
[dtSessionEndTime] [datetime] NULL,
[bSessionInProgress] [bit] NOT NULL,
 CONSTRAINT [PK_tblSession] PRIMARY KEY CLUSTERED 
(
[iUniqueId] 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].[tblSession] WITH CHECK ADD CONSTRAINT [FK_tblSession_tblSession] FOREIGN KEY([iUniqueId])
REFERENCES [dbo].[tblSession] ([iUniqueId])
GO
ALTER TABLE [dbo].[tblSession] CHECK CONSTRAINT [FK_tblSession_tblSession]
GO
ALTER TABLE [dbo].[tblSession] WITH CHECK ADD CONSTRAINT [FK_tblSession_tblSession1] FOREIGN KEY([iUniqueId])
REFERENCES [dbo].[tblSession] ([iUniqueId])
GO

[解决办法]
可能是创建表的人当时有点蛋疼。
[解决办法]
两句不都是一样的吗?难道是生成脚本的时候出问题了?
[解决办法]
是应该是搞错了吧
估计是iUserUniqueId-->iUniqueId


iUniqueId--必髯要有唯一性,才能被被引用(唯一索引、约束、主健)
[解决办法]
同意5楼的看法,典型的搞错了,不可能主键自引用的。
[解决办法]
是应该是搞错了吧
估计是iUserUniqueId-->iUniqueId


估计是想 用 iUniqueId,iUserUniqueId 这两个字段来做联合主键。

热点排行