ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

SQLパズルコミュのPuzzle 1: Fiscal year tables

  • mixiチェック
  • このエントリーをはてなブックマークに追加
与えられた日付がどの会計年度に属するかを決定するテーブルを定義して、このテーブルが正しい情報だけを持つように、考えられるすべての制約を与える、というもの。



イメージとしては、各種制約を駆使して、通常の表定義をさらに堅い物にする感じです。

ただ、それに至る前に、データ型検査があり、そのデータ型検査の厳密さを実装するDB毎に知っておく必要があります。

例えば、数値列に文字列を代入するときに、エラーになるのか、暗黙的に変換されるのか、とか。日付型として代入する場合に、ありえない日付(例: '2007-02-30')はエラーとなるのか、ならないのか。(初期のMySQLでは、日付型は文字列として扱われていたので不正な日付が入りうる)



後、CHECK制約で使う列のすべてがNOT NULLでないとCHECKできないことを再認識してみたり(そりゃそうだ)

コメント(3)

SQL92の表明が実装されだしたら、きっと表明を使ったのを出版してくれることでしょう
表明(assertion)が実装されるとパズルの幅が広がりそうですね(笑)
create assertion aaaa
(select count(*)
from
)
= (select count(*)
from


みたいなパズル(笑)

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

SQLパズル 更新情報

SQLパズルのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング