Введение в стандарты языка баз данных SQL


Определение ограничений целостности - часть 3


(b) если ссылающаяся таблица является глобальной временной, то и таблица, на которую указывает ссылка, должна быть глобальной временной;

(c) если ссылающаяся таблица является создаваемой локальной временной, то и таблица, на которую указывает ссылка, должна быть создаваемой локальной временной;

(d) если ссылающаяся таблица является объявляемой локальной временной, то таблица, на которую указывает ссылка, должна быть либо глобальной временной, либо создаваемой локальной временной, либо объявляемой локальной временной.

  • Если таблица, на которую указывает ссылка является временной со спецификацией ONCOMMITDELETEROWS, то и для ссылающейся таблицы должно быть специфицировано ONCOMMITDELETEROWS.
  • В списке ссылающихся столбцов должно содержаться то же число имен столбцов, что задается разделом referencedtableandcolumns. i-тый столбец, идентифицируемый списком ссылающихся столбцов соответствует i-тому столбцу, идентифицированному в разделе referencedtableandcolumns. Типы данных соответствующих столбцов должны совпадать.
  • Если в определении ссылочного ограничения не специфицировано правило модификации (updaterule), то по умолчанию предполагается наличие такого правила с действием NOACTION.
  • Если в определении ссылочного ограничения не специфицировано правило удаления (deleterule), то по умолчанию предполагается наличие такого правила с действием NOАCTION.
  • Пусть Rf обозначает ссылающиеся столбцы, а Rt - соответствующие столбцы в таблице, на которую указывает ссылка. Ссылающаяся таблица и таблица, на которую указывает ссылка, удовлетворяют ссылочному ограничению в том и только в том случае, когда:

      (a) тип соответствия (matchtype) не указан, и для каждой строки ссылающейся таблицы истинно условие RfMATCH (SELECTRtFROMT);

      (b) указан тип соответствия PARTIAL, и для каждой строки ссылающейся таблицы истинно условие RfMATCHPARTIAL (SELECTRtFROMT);

      (c) указан тип соответствия FULL, и для каждой строки ссылающейся таблицы истинно условие RfMATCHFULL (SELECTRtFROMT).

  • Если не указан тип соответствия или если указан тип соответствия FULL, то для данной строки таблицы, на которую указывает ссылка, соответствующими являются все строки ссылающейся таблицы, значения полей ссылающихся столбцов которых равны значениям соответствующих столбцов строки, на которую указывает ссылка.
  • Если указан тип соответствия PARTIAL, то