Ниже приведен пример предложения псевдоЯОД
Ниже приведен пример предложения псевдоЯОД для поставок, показывающий возможное множество спецификаций внешних ключей:
CREATE TABLE SP /*поставки — связывает S и Р*/
PRIMARY KEY (НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ)
FOREIGN KEY (НОМЕР_ПОСТАВЩИКА IDENTIFIES S
NULLS NOT ALLOWED
DELETE OF S.RESTRICTED
UPDATE OF S. НОМЕР_ПОСТАВЩИКА
CASCADES)
FOREIGN KEY (НОМЕР_ДЕТАЛИ IDENTIFIES P
NULLS NOT ALLOWED
DELETE OF P.RESTRICTED
UPDATE OF P.НОМЕР_ДЕТАЛИ
RESTRICTED)
FIELDS (НОМЕР_ПОСТАВЩИКА . . ., НОМЕР_ДЕТАЛИ . .
., КОЛИЧЕСТВО . . .);
Фразы PRIMARY KEY (первичный ключ) и FOREIGN KEY (внешний ключ) в псевдоЯОД имеют следующий общий синтаксис:
Фраза-PRIMARY-KEY
:: = PRIMARY KEY (первичный—ключ),
где «первичный — ключ» — это либо единственное имя-поля, например НОМЕР_ПОСТАВЩИКА, либо заключенный в круглые скобки список имен-полей, разделенных запятыми, например (НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ).
Фраза-FOREIGN-KEY
: : = FOREIGN KEY (внешний—ключ IDENTIFIES цель
NULLS [NOT] ALLOWED
DELETE OF цель эффект
UPDATE OF первичный — ключ — цели эффект),
где а) «внешний—ключ»—то же самое, что было сказано выше о «первичном-ключе», т. е. либо единственное имя-поля, либо заключенный в круглые скобки список имен-полей, разделенных запятыми; б) «цель» — имя-таблицы; в) «первичный-ключ-цели» специфицирует «первичный-ключ» для «цели» и, наконец, г) «эффект—CASCADES (каскадируется), RESTRICTED (ограничивается) или NULLIFIES (устанавливается неопределенное значение).
Примечание. Фразы PRIMARY KEY и FOREIGN KEY, подобные приведенным выше, были бы в высшей степени желательными расширениями существующего ЯОД системы DB2.