3

テーブル列にフルテキスト インデックスを作成しようとしていますが、エラーが発生します。

私のクエリは次のとおりです。

create table products
(
p_id int primary key,
p_name varchar(50),
)

insert into products values(1,'Sugar')
insert into products values(2,'Tea')
insert into products values(3,'Flour')
insert into products values(5,'Soap')

create index pname on products(p_name)
select * from products

create fulltext catalog product as default

create fulltext index on products(p_name) key index pname on product

このエラーが発生します:

メッセージ 7653、レベル 16、状態 2、行 1 'pname' は、全文検索キーを適用するための有効なインデックスではありません。フルテキスト検索キーは、オフラインでなく、非決定論的または不正確な非永続化計算列で定義されておらず、フィルターを持たず、最大サイズが 900 である、一意で null 非許容の単一列インデックスである必要があります。バイト。フルテキスト キーの別のインデックスを選択します。

4

1 に答える 1

5

PRIMARY KEY に名前を付け、最後のステートメントで KEY INDEX として使用する必要があります。

create table products
(
p_id int CONSTRAINT [PK_products] PRIMARY KEY,
p_name varchar(50),
)

....
create fulltext index on products(p_name) key index PK_products on product

キー インデックス index_name

table_name のユニーク キー インデックスの名前です。KEY INDEX は、一意で、単一キーで、null 非許容の列である必要があります。フルテキストの一意のキーに最小の一意のキー インデックスを選択します。最高のパフォーマンスを得るには、フルテキスト キーに整数データ型を使用することをお勧めします。

于 2013-02-05T12:46:09.840 に答える