Я прошел предыдущие ответы, чтобы создать псевдо-внешний ключ для сопоставления таблиц между двумя базами данных в Netbeans 8.1. Это код, который я придумал,Внешний ключ между двумя базами данных
DELIMITER //
CREATE OR REPLACE TRIGGER conf_track_FK
AFTER INSERT OR UPDATE on [email protected]
FOR EACH ROW
BEGIN
IF EXISTS(select * from inserted I where not exists (select * from
[email protected] A where I.conf_id=A.conf_id))
RAISE_APPLICATION_ERROR(-20001,'Violation of pseudo-foreign key.');
ROLLBACK;
END IF;
END;
/
Однако я сталкиваюсь следующие ошибки:
PLS-00103: Encountered the symbol ";" when expecting one of the following:
) with and or group having intersect minus start union where
connect
PLS-00103: Encountered the symbol "ROLLBACK" when expecting one of the following:
:= . (% ;
The symbol ":=" was substituted for "ROLLBACK" to continue.
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
end not pragma final instantiable order overriding static
member constructor map
Ваше сообщение об ошибке указывает Oracle и '@ FIT5148B' DBLink. Вы не можете создать триггер через ссылку db. Вам нужно подключиться к удаленной базе данных и создать там триггер. Также: 'delimiter //' недействителен для любого инструмента Oracle SQL, который я знаю. Вы уверены, что ваш инструмент поддерживает это? Кроме того, в Oracle нет такой вещи, как «вставленный», особенно в триггер уровня строки. –
Также структура 'if-statement' проста. Пожалуйста, помогите себе и сначала прочитайте основные учебные пособия. Их не так сложно [найти] (http://stackoverflow.com/tags/plsql/info). – user272735