У меня есть триггер в MySQL записана как например:MySQL Trigger для PostgreSQL Trigger
DELIMITER $$
CREATE TRIGGER mytrigger
BEFORE INSERT ON people
FOR EACH ROW
BEGIN
SET NEW.first_name = SUBSTRING_INDEX(SUBSTRING_INDEX(NEW.name, ' ', 1), ' ', -1);
SET NEW.last_name = SUBSTRING_INDEX(SUBSTRING_INDEX(NEW.name, ' ', 3), ' ', -1);
SET NEW.middle_name = IF(LENGTH(NEW.name) - LENGTH(REPLACE(NEW.name, ' ', ''))>1
,SUBSTRING_INDEX(SUBSTRING_INDEX(NEW.name, ' ', 2), ' ', -1)
,NULL);
END$$
DELIMITER ;
Я переключение на PostgreSQL, так как вариант ClearDB Heroku для MySQL требует плана затрат беспорядочного количества денег, чтобы использовать триггера
Мой вопрос: я пробовал все, как я могу заставить этот триггер работать в PostgreSQL?
«* Я пробовал все * "- что именно вы делали? –
@a_horse_with_no_name Я попытался создать этот же триггер в Postgres, используя ту же самую информацию, указанную выше, из 'SET NEW.first_name ...' to 'SET NEW.middle_name ...' Postgres распознает это как действительный синтаксис просто как триггер, но когда я пытаюсь получить к нему доступ в моем приложении, я получаю много «неизвестной функции», затем переключился на 'SUBSTRING_INDEX' на' SPLIT_PART', а затем появился целый новый набор ошибок. –
Оператор присваивания: '= = в PL/pgSQL, а не' SET': http://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-ASSIGNMENT –