[Seasar-user:7399] Re: [DbLauncher]外部キーの設定
taichi sato
[E-MAIL ADDRESS DELETED]
2007年 4月 23日 (月) 17:29:31 JST
太一です。
DbLauncher自体の質問ではないので、
何が適切な動作なのかは、分りませんが、以下の様なクエリで実験してみました。
DROP TABLE IF EXISTS BOOKSPEC;
CREATE TABLE BOOKSPEC(
ID VARCHAR(20) PRIMARY KEY
);
DROP TABLE IF EXISTS RENTINFODETAIL;
CREATE TABLE RENTINFODETAIL(
BOOKID VARCHAR(20) PRIMARY KEY
);
DROP TABLE IF EXISTS BOOK;
CREATE TABLE BOOK(
ID VARCHAR(20) PRIMARY KEY,
BOOKSPECID VARCHAR(20),
STATUS VARCHAR(20),
CONSTRAINT BOOK_BOOKSPEC FOREIGN KEY(BOOKSPECID) REFERENCES BOOKSPEC(ID),
CONSTRAINT BOOK_RENTINFODETAIL FOREIGN KEY(ID) REFERENCES
RENTINFODETAIL(BOOKID)
);
INSERT INTO BOOKSPEC VALUES(20);
INSERT INTO RENTINFODETAIL VALUES(10);
INSERT INTO BOOK (ID, BOOKSPECID ,STATUS)values(10,20,'aaa');
INSERT INTO BOOK (ID, BOOKSPECID ,STATUS)values(11,20,'aaa');
INSERT INTO BOOK (ID, BOOKSPECID ,STATUS)values(10,21,'aaa');
最後のINSERT文2つはエラーになるので、
外部キーを複数定義すれば、それぞれが、制約として動作する様です。
結果としては、H2に同梱されているコンソールアプリケーションに問題が少なからずあるようです。
尚、H2自体の動作については、なるべくH2のMLでご質問なさって下さい。
http://groups.google.com/group/h2-database
よろしくお願いします。
07/04/23 に Tetsutaroh Satoh<[E-MAIL ADDRESS DELETED]> さんは書きました:
>
>
>
>
> 佐藤徹太郎です。
>
> お世話になっております。
>
> DbLauncher0.0.3を使用しております。
>
> H2コンソールでCREATE TABLE文の中で
>
> 外部キーを2つ定義したはずなのに、
>
> H2コンソールには、1つしか表示されません。
>
> SQLは次のように書きました。
>
>
>
> CREATE TABLE BOOK
>
> (ID VARCHAR(20) PRIMARY KEY,
>
> BOOKSPECID VARCHAR(20),
>
> STATUS VARCHAR(20),
>
> CONSTRAINT BOOK_BOOKSPEC FOREIGN KEY(BOOKSPECID) REFERENCES BOOKSPEC(ID),
>
> CONSTRAINT BOOK_RENTINFODETAIL FOREIGN KEY(ID) REFERENCES
> RENTINFODETAIL(BOOKID));
>
>
>
> どこか、書き方が間違っていますでしょうか? これでは、外部キーは1つしか定義されないのでしょうか?
>
> ご教授よろしく御願い致します。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
Seasar-user メーリングリストの案内