Вставка данных и ограничения целостности
Нельзя вставить в таблицу данные, если значение одного из столбцов добавляемой записи нарушает установленные для этой таблицы ограничения целостности. К примеру, если для создания таблицы ЕМР, которую мы использовали в предыдущих обсуждениях, применяется сценарий utlsampl. sql, Oracle построит для столбца EMPNO ограничение первичного ключа, чтобы принудительно обеспечить уникальность значений этого столбца. Следующий блок кода показывает, как отреагировал бы Oracle, если бы мы попытались вставить в ЕМР строку для служащего SMITHERS, используя для него значение EMPNO, уже определенное для служащего SMITH:
SQL> insert into emp (empno, ename, job)
2 values (7369, 'SMITHERS', 'LACKEY');
insert into emp (eracno, enarne, job)
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Таким образом, при попытке добавить в таблицу новые данные, нарушающие ограничения целостности для таблицы, Oracle возвращает сообщение об ошибке. К тому же не забудьте, что ошибочная запись в базу данных при этом не включается. Из следующего примера можно получить подтверждение, что запись для служащего SMITHERS не была добавлена в базу данных и никоим образом не перекрыла существующую запись для служащею SMITH:
SQL> select empno, ename, job
2 from emp
3 where empno =• 7369;
EMPNO ENAME JOB
369 SMITH CLERK
СоветДля того чтобы вставить запись в таблицу с ограничением внешнего столбца, необходимо сначала вставить новую строку в родительскую таблицу, а уж затем вставлять новые строки в дочернюю(ие) таблицу(ы)
Дата добавления: 2015-08-21; просмотров: 676;