Как бы я добавил ограничение проверки, чтобы убедиться, что дата не в будущем - PullRequest
0 голосов
/ 10 февраля 2020

Я не могу найти синтаксис, чтобы запретить людям вводить дату в будущем. У меня есть это, но это не будет работать? Мне разрешено использовать только оракулы SQL плюс

ОГРАНИЧЕНИЕ НАПРАВЛЕНИЯ ПРОВЕРКИ ДАТЫ ФЕНОРЕМЕНТА (dateofenrolment <= sysdate) </p>

1 Ответ

1 голос
/ 10 февраля 2020

Вы не можете сделать это в Oracle с проверочным ограничением. Проблема в том, что функции, используемые в проверочном ограничении, должны быть детерминированы c. То есть они должны возвращать одно и то же значение при одинаковых аргументах. Ясно, что sysdate не удовлетворяет этому требованию, потому что его значение изменяется каждый раз.

Oracle накладывает это ограничение, потому что ограничение check истинно не только при вставке (или изменении) данных в таблицы, но на все времена.

Вы можете делать, что хотите, используя триггер. Просто определите триггеры insert и update, чтобы предотвратить попадание неверных значений.

...