2012-04-22 9 views

答えて

0

sysdateで検査制約を作成することはできません。回避策として、日付パラメータを取る関数を作成し、日付パラメータをチェックします。 (Like this

2

チェック制約は、常に真でなければならないデータに関するアサーションです。したがって、現在の日付を使用してチェック制約を強制しようとするのは絶対に意味がありません。今日が真実なら、明日は偽でなければならない。

これにはさまざまな方法がありますが、いずれも完全に満足できるものではありません。

INSERT文を発行するPL/SQL APIを提供できます。これにより、列に常にSYSDATEが設定されるように制御できるためです。誰もがPL/SQL APIを好むわけではありません。

SYSDATEを使用してその列のデフォルトとして表を定義できます。次に、他のユーザーが列を移入するのを防ぐために、表のパーミッションを使用します。これは、テーブル所有者以外のユーザーでのみ機能します。

挿入トリガーおよび更新トリガーを使用して、SYSDATEを使用してユーザーが割り当てた値を上書きできます。しかし、トリガーはパフォーマンスに影響します。

関連する問題