- - PR -
MySQL のUNIQUEについて
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-09-26 10:08
こんにちは、SQL初心者です。
今回テーブルを作る際UNIQUEでDATE_AとDATE_Bがお互い一緒のときのみエラーを表示というのテーブルを作成したいのですがどうしてもなりません。 作成してみたテーブル CREATE TABLE SAM( DATE_A INT(1), DATE_B INT(1), UNIQUE KEY (DATE_A,DATE_B) ); しかしこの作りだと当たり前のようにDATE_A or DATE_Bのときにエラーが発生します。 このorをandにしたいのですが、どう作成をしたら良いでしょうか。。。 説明が下手で大変もうしわけないです。^^; | ||||||||||||
|
投稿日時: 2008-09-26 10:29
日本語だけで説明されては、かなり曖昧です。 具体的に「格納したいデータ」、「エラーとしたいデータ」の例を示してください。 また、MySQLの場合、バージョン4.0以前、4.1、5.0以降で、多くの機能拡張や一部の仕様変更があります。バージョンを明記してください。 | ||||||||||||
|
投稿日時: 2008-09-26 10:55
はい。
バージョンは4.1です。 今回作ろうとしているのは有給を取得するプログラムです。 存在するのデータ ID | DAY 1 |2008-09-01 2 |2008-09-05 3 |2008-09-12 4 |2008-09-01 5 |2008-09-05 このようなデータがあった場合で新しいIDを入れる場合同じIDの人が同じデータを入れる場合エラーを表示させなくてはいけません。 Ex) 入力データ(ID:1 DAY:2008-09-01) エラーを表示 しかし先ほど書いたテーブルでは入力データが (ID:1 DAY:2008-09-02)でも (ID:9 DAY:2008-09-01)でもエラーが発生してしまいます。 そのため、IDとDAYの入力データが以前のデータとどちらも重複しているときのみエラーを表示するという風にしたいのです。 | ||||||||||||
|
投稿日時: 2008-09-26 12:21
日付を格納するのに、データ型がINTになっていますが、間違いですよね?
列名が最初に提示されたDDLと違っていますが? 2列の複合キーで重複禁止にするのは、
で問題ないです。 |
1