Запрос CREATE TABLE с неуникальным индексом - PullRequest
0 голосов
/ 10 января 2020

В MS Access, каков синтаксис запроса определения данных для создания таблицы с полем, индекс которого позволяет дублировать значения. Я могу создать таблицу с полем, индексированным по уникальным значениям, но не могу понять, как разрешить повторяющиеся значения (эквивалент «Да (дубликаты в порядке)» в диалоговом окне проектирования таблицы.

Следующее SQL создает таблицу и добавляет уникальный индекс в поле PN.

CREATE TABLE [AllocatedPNSales]
(
    ID AutoIncrement CONSTRAINT PrimaryKey PRIMARY KEY,
    PN Text(255) CONSTRAINT PNIndex UNIQUE,
    [Profit Center] Text(255),
    [Ship Year] INTEGER,
    Sales DOUBLE
);

Я могу добавить индекс, который позволяет дублировать значения в индексе после создания таблицы с этим SQL оператор:

CREATE INDEX PNIndex ON AllocatedPNSales (PN);

Кто-нибудь знает, как это сделать непосредственно в операторе CREATE TABLE?

1 Ответ

0 голосов
/ 11 января 2020

К сожалению, документация для CREATE TABLE statment показывает index1 и index2 в синтаксисе:

CREATE [TEMPORARY] TABLE table ( field1 type [( size )] [NOT NULL] [С СЖАТИЕМ | С КОМПЬЮТОРОМ] [ index1 ] [, field2 type [( size )] [NOT NULL] [ index2 ] [,…]] [ , CONSTRAINT multifieldindex [,…]])

Однако он описывает index1, index2 в качестве заполнителей для предложения CONSTRAINT , определяющего индекс одного поля. Похоже, что единственным ограничением для одного поля является PRIMARY KEY, UNIQUE, NOT NULL или REFERENCES. Учитывая это, представляется невозможным создать общий (неуникальный) индекс внутри оператора CREATE TABLE.

...