2016-10-20 3 views
0

オラクル表にデータが入力されるたびに、日付と時刻が「CREATION_DATE」という列の1つに自動的に更新されます。oracleでデータを挿入または更新すると、時刻と日付は自動的に更新されますか?

+2

これは、デフォルト値のSYSDATEまたはそれが確実に満たされるトリガーを使用して実行できます。正しい答えはあなたの正確なニーズとコードに依存します。たとえば、INSERTにNULLが明示的に指定されている場合、デフォルト値を上書きすることができます。 –

答えて

1

SYSDATEのデフォルト値を設定する方が、トリガーより効率的です。 helpcで述べたように、INSERTにNULLが明示的に指定されていれば、デフォルト値を上書きすることができます。アプリケーションを介して日付時刻を渡すつもりがない場合は、列をNOT NULLとして定義し、デフォルトをsysdateとして定義できます。

+1

そして、デフォルト値はどのようにUPDATEに役立ちますか? –

+0

はい、SYSDATE機能を使用しました。その効率的で頭の傷が少ない。 ありがとう – snigdha

+0

しかし、時間も調整できるかどうか知りたいですか? – snigdha

0

トリガーは、あなたが望むことをするでしょう。あなたのニーズに応じて

CREATE OR REPLACE TRIGGER date_trigger 
    AFTER INSERT ON your_table 
    FOR EACH ROW 
WHEN (new.your_table> 0) 
BEGIN 
    :NEW.CREATION_DATE:= SYSDATE; 
END; 
/

私は通常、後に発生する可能性があり、変更のためのタイムスタンプをピックアップしCREATE_DATEとUPDATE_DATE列の両方を追加したい:私はこのようなものは、あなたが探しているいるものと思います。

+0

'delete'思考のタイムスタンプをどのように記録しますか? (それがなければ、全体の概念は論理的にそれ自体と矛盾している)。私のポイントは、なぜこの情報を把握する必要があるのか​​? – mathguy

+0

コードが実行されません。 – snigdha

+0

'WHEN(new.your_table> 0)'が間違っています –