2016-03-25 1 views
0

Я бы хотел сделать ON Update Cascade, но otacle не поддерживает его. Есть в любом случае сделать этоИспользование ON CASCADE CONSTRAINT для оракула

create table parentTable 
    (
     Username varchar2 (50) primary key, 
     password varchar2 (50) 
    ); 

    create table childTable 
    (
     ID varchar2 (10), 
    Name varchar2 (50), 
    email_address varchar2 (50) references parentTable (Username) 
    ); 
+0

Вы имеете в виду иностранный ключ? – Thomas

+0

спасибо за ответ yup. – Programmer

ответ

0

Я вижу, так что вы хотите, чтобы весь "логика" в оракула :)

https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:130261000346380506

+0

спасибо, сэр, мой ответ был таким же, как и у меня, но в чем проблема, с которой я столкнулся, я не мог выполнить ВКЛЮЧЕНИЕ каскада, поэтому, если имя пользователя parentTable обновлено, я хочу, чтобы childTable email_address также обновлялся. – Programmer

0

Можете ли вы? Да. Тебе следует? Почти наверняка нет.

use this AskTom package to generate triggers that implement cascading updates. Это создаст несколько триггеров и пакет и реализует различные биты логики, которые вам нужны для каскадного обновления.

Функционально, однако, это много движущихся частей, работающих в вашей базе данных, чтобы реализовать каскадное обновление. Как правило, желание делать каскадные обновления подразумевает, что ваш выбор первичного ключа менее идеален. Первичный ключ должен быть неизменным. В этом примере я бы предпочел, чтобы первичный ключ parentTable был изменен на генерируемое по порядку значение, которое никогда не изменилось бы и username/email было сделано unique. Затем дочерняя таблица могла использовать неизменяемое генерируемое последовательностью значение в качестве внешнего ключа, и пользователи могли бы свободно обновлять свои адреса электронной почты без необходимости каскадирования обновления через различные дочерние таблицы.

Смежные вопросы