CREATE_LINK(TableName: IDENT;
IndexName:
IDENT;
LinkName: IDENT;
CooTableName: IDENT;
CooIndexName:
IDENT;
OwnAttr: OWNATTR_IDENT;
[ Description:
STRING[] ];
[ Comment: STRING[]
] );
OWNATTR_IDENT = USER | BORROW | HISTORY
Процедура объявляет справочную связь LinkName для таблицы TableName на основе ее индекса IndexName с таблицей CooTableName по индексу CooIndexName. Таблицы и индексы должны быть уже объявлены процедурами CREATE_TABLE и CREATE_INDEX. Параметр OwnAttr уточняет тип справочной связи:
Параметры Description и Comment задают соответственно описание и комментарий для связи.
Длиной связи считается длина индекса CooIndexName. Имена и типы полей индексов IndexName и CooIndexName должны строго совпадать на длину связи. Имена индексов должны совпадать. Индекс CooIndexName должен быть уникальным, а индекс IndexName должен быть либо более длинным, чем CooIndexName, либо неуникальным. При несоблюдении перечисленных требований будет выброшено то или иное исключение.
До версии 14.136.020 процедура называлась CreateLINK. В настоящее время допустимы оба варианта имени.
Связь с таким именем в таблице уже существует | Исключение 105 |
CooIndexName есть неуникальный индекс в таблице CooTableName | Исключение 102 |
Индекс OwnIndex короче чем индекс CooIndexName | Исключение 101 |
Имена индексов не совпадают | Исключение 106 |
Имена полей связи не совпадают | Исключение 99 |
Типы полей связи не совпадают | Исключение 100 |
Таблица TableName уже объявлена BORROW-таблицей и не может быть объявлен BORROW-таблицей к CooTableName | Исключение 197 |
Создание данной связи порождает цикл в структуре БД, в котором каждая таблица ссылается на другую ссылкой типа много-в-один (начиная с V14.47.1) | Исключение 395 |