[2020-01-18 10:14:12] [72000] [20000] ORA-20000: Fehler
Это ошибка, возникающая при срабатывании триггера при отсутствии данных в городе, который соответствует записи, которую вы пытаетесь вставить в адрес. Другими словами, это ваш триггер , работающий как задумано . Так что, если этот результат вас удивит, вам нужно проверить данные, которые вы используете как для CITY, так и для ADRESSE.
Просто чтобы доказать это, вот демонстрация на db <> fiddle .
Между прочим, это похоже на то, что правильно применяется через внешний ключ. Использование триггера для принудительной установки отношения является неправильным, потому что:
- Он работает хуже и не масштабируется.
- Может произойти сбой в многопользовательской среде.
- Это не будет продолжать применять отношения, когда DML выполняется в ссылочной таблице (CITY в вашем случае).
- В запутывает модель данных.
- Использование нестандартных подходов сбивает с толку других разработчиков, которым приходится работать с вашим кодом или поддерживать его.
Возможно, у вас плохая модель данных, которая не позволит вам использовать сторонний код ключ здесь? Возможно, в CITY отсутствует уникальный ключ (state, province)
.
Хотя, возможно, это всего лишь назначение. Это - судьба триггеров, которые будут использоваться в домашних заданиях способами, которыми они никогда не должны использоваться в реальной жизни.