J'ai parcouru les réponses précédentes pour créer une clé pseudo-étrangère pour référencer des tables entre deux bases de données dans NetBeans 8.1. Voici le code que je suis venu avec,Clé étrangère entre deux bases de données
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;
/
Cependant, je rencontre les erreurs suivantes:
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
Votre message d'erreur indique Oracle et '@ FIT5148B' un DBLink. Vous ne pouvez pas créer un déclencheur via un lien DB. Vous devez vous connecter à la base de données distante et créer le déclencheur. Aussi: le 'délimiteur //' n'est pas valide pour tout outil SQL Oracle que je connais. Etes-vous sûr que votre outil supporte cela? De plus, il n'y a rien de tel que 'inserted 'dans Oracle - surtout pas dans un trigger de niveau ligne. –
La structure 'if-statement' est également erronée. S'il vous plaît aidez-vous et lire quelques tutoriels de base en premier. Ils ne sont pas si difficiles à trouver (http://stackoverflow.com/tags/plsql/info). – user272735