Oracle
 sql >> база данни >  >> RDS >> Oracle

получаване на грешка ORA-00907 при създаване на таблица в sql developer

Предполагам, че се опитвате да гарантирате, че Book записите се актуализират всеки път, когато промените Pname колона в Publisher таблица, но Oracle няма on update cascade .

Вижте тук за синтактичната диаграма на references клауза.

За да промените първичните ключове в Oracle, имате няколко опции:

  • Отлагане на ограничението (чужд ключ) проверете до извършване, след което актуализирайте както родител, така и дете в транзакцията.

  • Създайте нов родител с актуализираните подробности, след това променете всички деца, след което изтрийте оригиналния родител. Всичко в сделка, разбира се.

  • Спрете да използвате променливи данни като ключ. Отне много време на администраторите на бази данни да ме убедят, че трябва да се използват изкуствени (сурогатни) ключове, а не истински данни, но това беше случаят на използване, който най-накрая ме спечели. Използването на изкуствен ключ (който никога не трябва да се променя) означава, че този проблем изчезва напълно.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да върна редове въз основа на потребителя на базата данни и съдържанието на таблицата?

  2. Трябва ли процедурите и/или функциите на пакета DBMS_STANDARD да се използват в PL/SQL код?

  3. Как да компресирам този набор от резултати на Oracle в стойности според приоритета на реда, игнорирайки нули?

  4. има ли функция PRODUCT, както има функция SUM в Oracle SQL?

  5. PL/SQL съхранена процедура извежда курсора към VBA ADODB.RecordSet?