SAPUI5: Как создать ссылку внешнего ключа между двумя таблицами в HANA - PullRequest
0 голосов
/ 04 мая 2020

как указано в следующих заголовках:

У меня есть две таблицы, первая из которых выглядит следующим образом:

COLUMN TABLE "FirstTable"(
    "exampleId" INTEGER CS_INT NOT NULL,
    "Name" VARCHAR(50) NOT NULL,
    PRIMARY KEY ("exampleId")

) UNLOAD PRIORITY 5 AUTO MERGE;

и вторая таблица, которая должна иметь первичный ключ FirstTable как Внешний ключ, так что связь между этими двумя таблицами установлена.

SecondTable:

COLUMN TABLE "SecondTable"(
    "scndID" INTEGER CS_INT NOT NULL,
    "exampleId" INTEGER CS_INT NOT NULL,
    PRIMARY KEY ("scndID"),
    FOREIGN KEY("exampleId")

) UNLOAD PRIORITY 5 AUTO MERGE;

Проблема : FOREIGN KEY не работает / не распознается .

Вопрос : Как создать связь между двумя таблицами с помощью внешних ключей?

1 Ответ

1 голос
/ 05 мая 2020

Вы были действительно близки с выбранным синтаксисом. Все, что не хватает для второй таблицы - это сообщить HANA, к какой таблице должен принадлежать внешний ключ.

Вам необходимо добавить выражение REFERENCES в выражение FOREIGN KEY.

Это объясняется в документации здесь .

create COLUMN TABLE "SecondTable"(
    "scndID" INTEGER NOT NULL,
    "exampleId" INTEGER  NOT NULL,
    PRIMARY KEY ("scndID"),
    FOREIGN KEY("exampleId") REFERENCES "FirstTable"
);

Кстати: хороший выбор для создания всех столбцов NOT NULL! Распространенной ошибкой является оставить значение по умолчанию NULLABLE и затем иметь дело с NULL s повсеместно.

Я бы порекомендовал , а не включать типы данных хранилища столбцов ( CS_INT ) в вашем коде - это просто сбивает с толку и не добавляет ничего ценного. Аналогично, используйте NVARCHAR вместо VARCHAR, если нет веских причин не делать этого.

...