创建全文索引 - 什么是“关键索引”?

问题描述 投票:0回答:1

作为关键索引的对象是什么?

在此示例中:它具有下表:

CREATE TABLE [dbo].[DM_OBJECT_FILE] (
    [FILE_ID] [int] NOT NULL,
    [FILE_FIN] [int] NOT NULL,
    [FILE_TITLE] [Varchar] (255) ,
    [OBJ_ID] [int] NOT NULL ,
    [FILE_ATT] [smallint] NOT NULL,
    [FILE_PATH] [Varchar] (500) NULL,
    [FILE_EXT] [Varchar](50) NULL,
    [FILE_TXT] [varbinary] (max) NULL,
    [FILE_KEYWORDS] [Varchar] (1000) NULL,
    [FILE_STATUS] [smallint] NULL,
    [FILE_TXT_SIZE] [Int] default 0,
    [OBJ_FILE_IDX_DOCTYPE] [Varchar] (3) Null,
    CONSTRAINT [PK_DM_OBJECT_FILE] PRIMARY KEY  CLUSTERED ([FILE_ID])
)

然后它创建了索引:

CREATE FULLTEXT INDEX ON  dbo.DM_OBJECT_FILE (
    FILE_TXT TYPE COLUMN OBJ_FILE_IDX_DOCTYPE LANGUAGE 0
) KEY INDEX PK_DM_OBJECT_FILE 
WITH 
    CHANGE_TRACKING = AUTO, 
    STOPLIST=OFF
;

这个例子中的

PK_DM_OBJECT_FILE
到底是什么?为什么它使用它而不是
KEY INDEX FILE_ID

然后在这个示例中它使用AdventureWorks2022

CREATE FULLTEXT INDEX ON Production.ProductReview (
    ReviewerName LANGUAGE 1033,
    EmailAddress LANGUAGE 1033,
    Comments LANGUAGE 1033
) KEY INDEX PK_ProductReview_ProductReviewID ON production_catalog;
GO

据我所知,

PK_ProductReview_ProductReviewID
不存在(
Production.ProductReviewID
存在)。

那么我应该将这个键设置为什么呢?

sql-server full-text-search
1个回答
0
投票

PK_DM_OBJECT_FILE
是程序员起的名字。

但是,当您没有为主键指定名称时,您会自动分配一个名称,对于您的情况,它是

PK_ProductReview_ProductReviewID

© www.soinside.com 2019 - 2024. All rights reserved.