Как я могу указать правила для внешних ключей в Microsoft Access с помощью SQL?

Я должен составить некоторые таблицы в Microsoft Access с помощью предложений SQL, и некоторые таблицы имеют внешние ключи.

Я хотел бы указать ограничения и правила для внешних ключей с помощью SQL:

  1. Позволяется ли ПУСТОЙ УКАЗАТЕЛЬ или нет
  2. Удалите правило
  3. Правило обновления

Как я могу указать правила для внешних ключей в Microsoft Access с помощью SQL?

0
задан 02.12.2014, 08:24

1 ответ

Я наконец нашел что-то в документации Доступа.

ОГРАНИЧИТЕЛЬНЫЙ пункт для определения FOREIGN KEY ограничения принимает следующий синтаксис:

CONSTRAINT FOREIGN KEY (ref1[, ref2[, ...]]) REFERENCES table
    ON UPDATE [CASCADE | SET NULL]
    ON DELETE [CASCADE | SET NULL]

Я предполагаю, что, чтобы указать, позволяется ли ПУСТОЙ УКАЗАТЕЛЬ или не для того FOREIGN KEY, другое ограничение должно быть добавлено с

CONSTRAINT NOT NULL (ref)

или непосредственно путем определения NOT NULL при определении того поля в пункте CREATE TABLE.

Однако я получаю синтаксическую ошибку, когда я ввожу "ON UPDATE", и "НА УДАЛЯЮТ" сообщение, которые не приняты, и та ошибка не появляется, когда я удаляю те правила.


Отредактированный 06.06.2010:

Этот синтаксис правилен и действительно работает правильно, но для Доступа для принятия его должны быть выполнены следующие требования:

  1. Необходимо использовать Access 2003 и позже.
  2. В меню "Tools> Options", на вкладке "Tables or queries", необходимо указать желание "Синтаксиса, совместимого с SQL Server (ANSI 92)", по крайней мере, для текущей базы данных.

После той небольшой конфигурации в моем Доступе 2003 это теперь работает! Доступ не показывает, что сообщение об ошибке больше, и теперь позволяет тот синтаксис для определения правил удаления и обновления для внешних ключей!

Когда любое из тех правил не указано, Доступ предположил, что ограничивается. Другими словами, если удалить правило или правило обновления не указаны, Доступ ограничивает удаление или обновление, соответственно.

1
ответ дан 24.11.2019, 12:31

Теги

Похожие вопросы