- - PR -
外部キー作成時の参照整合性
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-11-17 09:56
以下のようなSQLでテーブル作成を行おうとしています。
create table table1 ( a text(10) , b text(10) , primary key (a, b) ); create table table2 ( c text(10) , d text(10) , e text(15) , primary key (c, d, e) , foreign key (c) references table1(a) , foreign key (d) references table1(b) ); ここで、2つ目のSQLを実行した際にエラーとなるのですが、table1のフィールド"a"にuniqueなインデックを作成していないといけないのでしょうか?table1のフィールド"a"は、(a,b)の組ではユニークにしたいのですが、table1内で"a"単独では重複を許可したいのです。そうなると"a"にuniqueなインデックスを作成できないのでtable2の作成がエラーとなってしまいます。 確かに"a"、"b"単独ではユニークではありませんが、table2からは"a"も"b"も外部キーで参照するのでユニークになるかと思ったんですが・・ どのような作成方法にすればよいかアドバイスお願いします。 |
|
投稿日時: 2004-11-17 10:34
当方、Oracleですが、これだと目標を達成できませんか?
create table table1 ( a char(10) , b char(10) , primary key (a, b) ); create table table2 ( c char(10) , d char(10) , e char(15) , primary key (c, d, e) , foreign key (c,d) references table1(a,b) ); |
|
投稿日時: 2004-11-17 14:30
どうもありがとうございます。
なんだか初心者の質問で申し訳ないですが、上記のSQLで作成できました。 |
1