Oracle10gExpressまたはOracleXEを使用しています。EMPLOYEESテーブルに、現在の日付または変更されている場合は日付/時刻を自動的に生成するlast_modifiedという別の列呼び出しを追加します。oracle 10g以降でのみ使用できるrowscn(timestamp)があることは知っていますが、クライアントがoracle 9iを使用しているため、手動で作成したいのですが、テストを行うために10gしかありません。また、私はこれまでOracleを使用したことがありません。これは、LotusNotesとの統合プロジェクト用です。したがって、可能であれば、LotusScriptで日付または日付/時刻を認識できるようにします。
質問する
499 次
2 に答える
1
タイプの列をテーブルに追加しTIMESTAMP
ます(サポートされていない9iバージョンでは使用できない場合がありますが、DATE
代わりに使用してください)。
alter table employees add (modified_at timestamp);
次に、更新時に起動されるトリガーを作成します。このトリガーは、その列をsysdateに設定するだけです。
create or replace trigger update_modified
before update on employees
for each row
begin
:new.modified_at := sysdate;
end;
/
于 2012-07-24T09:03:33.403 に答える
1
通常の方法は
- 表にmodify_date/modified_by列を追加します
- 行が変更されるたびにこの列を更新するトリガーを作成します
例:
CREATE OR REPLACE TRIGGER TR_AUD_EMPLOYEE
BEFORE INSERT OR UPDATE OR DELETE ON EMPLOYEE
FOR EACH ROW
begin
if UPDATING then
:new.MODIFIED_BY := user;
:new.MODIFY_DATE := sysdate;
end if;
end;
于 2012-07-24T09:03:38.163 に答える