タグ

ブックマーク / spinoza-2.hatenadiary.org (1)

  • マイナーなCREATE文 - spinozaの日記

    CREATE ASSERTION SQL92で標準化された。1つ以上、複数のテーブルに対して制約をかける「表明」を定義する。 実装しているDBMSが少ないため知名度は低いが、DB側で複雑な制限をかけれるため処理速度の改善に繋がるらしい。 ストアドプロシージャとかと同じ理屈か? (この「表明」と言う考え方はC++などのASSERTチェック等に近いものだと思われる。データ操作時にある条件を判定し、異常である場合はエラーを投げる。) 設定した条件が偽の場合にエラーを発生させることができ、SELECT文を使った複雑な制約を定義することができる。 CREATE ASSERTION 入力値チェック CHECK (NOT EXIST(SELECT * FROM 価格票,限界値 WHERE 価格表.商品コード = 限界値.商品コード AND 価格票.価格 <= 限界値.上限価格)) ※表明名が「入力値チェ

    マイナーなCREATE文 - spinozaの日記
  • 1