dbmetalは、sqliteで繰り返される外部キー参照で窒息します - 何かアイデアはありますか?

StackOverflow https://stackoverflow.com/questions/2761701

質問

SQLiteデータベースを処理するためにdbmetalを取得するのに苦労してきました。私はついに問題を分離しました。テーブルは同じ列に2つの外部キー参照を持つことができません。

たとえば、これら2つのテーブルを備えたSQLiteデータベースは失敗します。

CREATE TABLE Person
(
    Id INTEGER PRIMARY KEY,
    Name TEXT NOT NULL
);

CREATE TABLE Match
(
    Id INTEGER PRIMARY KEY,
    WinnerPersonId INTEGER NOT NULL REFERENCES Person(Id),
    LoserPersonId INTEGER NOT NULL REFERENCES Person(Id)
);

このエラーが発生します:

dbmetal:シーケンスには、複数の一致する要素が含まれています

2番目の外部キー参照を取り除くと、エラーは発生しません。

だから、これはうまくいきます:

CREATE TABLE Match
(
    Id INTEGER PRIMARY KEY,
    WinnerPersonId INTEGER NOT NULL REFERENCES Person(Id),
    LoserPersonId INTEGER NOT NULL
);

しかし、人のテーブルを参照するには、両方の「人」列が本当に必要です。

提出しました バグレポート このためですが、その間に回避策を使用できます。何か案は?

役に立ちましたか?

解決

私は同じ問題を抱えていて、パッチを作成しました。私もあなたにそれを投稿しました バグレポート. 。他の人のために、ここでパッチを見つけることができます: http://pastebin.com/vhnptmqp.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top