gpt4 book ai didi

sql - 同一张表上 SQL 中的关系

转载 作者:行者123 更新时间:2023-12-01 22:39:02 25 4
gpt4 key购买 nike

我从来没有真正在我的数据库中使用过外键,我一直只是编写代码来为我强制执行某些操作,但我希望将其中的一些逻辑转移到数据库中并学习更多关于外键的知识。

我目前有一个数据库,其中包含表 Categories:

CREATE TABLE [dbo].[Categories](
[CategoryID] [bigint] IDENTITY(1,1) NOT NULL,
[ParentCategoryID] [bigint] NOT NULL,
[CategoryStatus] [bit] NOT NULL,
[CategoryTitle] [varchar](64) NOT NULL,
[CategorySlug] [varchar](64) NOT NULL,
[CategoryThumbnail] [varchar](128) NULL,
[CategoryHeaderImage] [varchar](128) NULL,
[CategoryDescription] [text] NULL,
CONSTRAINT [PK_Categories] PRIMARY KEY CLUSTERED
(
[CategoryID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [UI_Categories_Slug] UNIQUE NONCLUSTERED
(
[CategorySlug] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

我想创建一个将 ParentCategoryID 关联到 CategoryID 的外键。在创建 FK 时,在这种情况下哪个是主列,哪个是外部列?

最佳答案

我认为 ParentCategoryID 必须是 NULLable(除非您希望顶级父项指向自身,这没有多大意义).

ALTER TABLE dbo.Categories
ADD CONSTRAINT FK_SelfParent
FOREIGN KEY (ParentCategoryID)
REFERENCES dbo.Categories(CategoryID);

真实故事:在 Microsoft 的一次工作面试中(几年前),一位 SQL Server 人员告诉我这是不可能的。

关于sql - 同一张表上 SQL 中的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17891983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com