Вот мой PostGreSQL кодСоздание функции Триггер PSQL «ошибка синтаксиса или вблизи„CREATE“»
CREATE FUNCTION connectedExhibitionFunction()
RETURNS trigger AS
$$
BEGIN
IF (SELECT COUNT("exName") FROM Exhibitions WHERE NEW."exName" = "exName") > 0 THEN
IF (SELECT Count(doorLoc1) FROM Doors, ExhibitionLocations WHERE (dorLoc1=NEW.elLocation AND dorLoc2=elLocations) OR (dorLoc2=NEW.elLocation AND dorLoc1=elLocations) > 0 THEN
RAISE EXCEPTION 'You can't have the exhibition there, the same exhibition is in an unconnected room';
END IF;
END IF;
END;
$$
LANGUAGE plpgsql;
CREATE TRIGGER connectedExhibitionTrigger
BEFORE INSERT
ON ExhibitionsLocations
EXECUTE PROCEDURE connectedExhibitionFunction();
И это ошибка я получаю
psql:file.txt:62: ERROR: syntax error at or near "CREATE"
LINE 8: CREATE FUNCTION connectedExhibitionFunction()
^
psql:file.txt:67: ERROR: current transaction is aborted, commands ignored until end of transaction block
я не могу похоже, выяснили ошибку, может ли кто-нибудь что-нибудь здесь увидеть?
Ошибка говорит 'LINE 8'. Я предполагаю, что в предложении перед ним отсутствует точка с запятой. –
Это не на 100% ясно, что должен делать триггер, но, похоже, вы пытаетесь создать с ним уникальное ограничение. Почему бы просто не создать для этого уникальный индекс? И должен действительно научиться использовать явный оператор 'JOIN' вместо древних, устаревших и хрупких неявных объединений в предложении' where' –