Когда мы начинаем переносить наше приложение из Oracle в PostgreSQL, мы столкнулись со следующей проблемой:
Многие наши скрипты Oracle создают триггеры, которые работают с таблицами, специфичными для Oracle, которых нет в PostgreSQL.При запуске этих сценариев в базе данных PG они не будут выдавать ошибку.Только при срабатывании триггера выдается ошибка.
Пример кода:
-- Invalid query under PostgreSQL
select * from v$mystat;
-- Create a view with the invalid query does not work (as expected)
create or replace view Invalid_View as
select * from v$mystat;
-- Create a test table
create table aaa_test_table (test timestamp);
-- Create a trigger with the invalid query does(!) work (not as expected)
create or replace trigger Invalid_Trigger
before insert
on aaa_test_table
begin
select * from v$mystat;
end;
-- Insert fails if the trigger exists
insert into aaa_test_table (test) values(sysdate);
-- Select from the test table
select * from aaa_test_table
order by test desc;
Есть ли способ изменить это поведение, чтобы вместо этого выдавать ошибку при создании триггера?
С уважением, Хаммерфельс
Редактировать:
Мне стало известно, что мы на самом деле используем не базовый PostgreSQL, а EDB.Это, вероятно, объясняет, почему синтаксис для триггера создания кажется неправильным.Прошу прощения за путаницу.