А в этом оракле можно сделать триггер на UPDATE записи, который бы изменял поле в этой же самой записи?
Нормальным способом вложенный UPDATE из триггера не работает, получается deadlock. Autonomous transaction не помогает.
Это вообще возможно? Если да, то как? Если нет, то как это обойти?
В MSSQL оно замечательно работало.
Upd: уточненная задача выглядит так: в таблице есть вычисляемое поле, значение которого зависит от других полей _этой же записи_. Хочется возложить задачу вычисления этого поля на сервер путем триггера, срабатывающего на UPDATE. Так бывает?
Нормальным способом вложенный UPDATE из триггера не работает, получается deadlock. Autonomous transaction не помогает.
Это вообще возможно? Если да, то как? Если нет, то как это обойти?
В MSSQL оно замечательно работало.
Upd: уточненная задача выглядит так: в таблице есть вычисляемое поле, значение которого зависит от других полей _этой же записи_. Хочется возложить задачу вычисления этого поля на сервер путем триггера, срабатывающего на UPDATE. Так бывает?
no subject
no subject
Или имеется в виду список полей, при изменении которых срабатывает триггер? Если так, то именно туда
no subject
CREATE OR REPLACE TRIGGER orders_before_update
BEFORE UPDATE
ON orders
FOR EACH ROW
DECLARE
v_username varchar2(10);
BEGIN
-- Find username of person performing UPDATE on the table
SELECT user INTO v_username
FROM dual;
-- Update updated_date field to current system date
:new.updated_date := sysdate;
-- Update updated_by field to the username of the person performing the UPDATE
:new.updated_by := v_username;
END;
no subject
Спасибо, завтра буду проверять. А то уже поздно, с работы выгоняют ;)
no subject
jfui, оракл живьем я видел лет пять назад, а сейчас в гугле набрал
before update trigger oracle (http://www.google.ru/search?q=before+update+trigger+oracle&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox&rls=org.mozilla:en-US:unofficial) и открыл вторую ссылку из результатов (http://www.techonthenet.com/oracle/triggers/before_update.php) :)
no subject
no subject
Вот что значит давно уже
переквалифицироваться в управдомыперестать заниматься разработкой и уйти в админоиды... :))no subject