0

複数のフィールドに外部キー制約を定義する sqlite データベースで SQLMetal を実行しようとすると、エラーが発生します。

表は次のとおりです。

CREATE TABLE A (
    a1 INTEGER,
    a2 INTEGER,
    PRIMARY KEY (a1,a2)
);
CREATE TABLE B (
    b1 INTEGER,
    b2 INTEGER,
    b3 INTEGER,
    b4 TEXT,
    PRIMARY KEY (b1,b2,b3),
    FOREIGN KEY (b1,b2) REFERENCES A (a1,a2)
);

エラーメッセージは次のとおりです。

"sqlmetal: Sequence contains more than one matching element"

誰でもその問題を解決する方法を知っていますか?

4

1 に答える 1

0

問題は、テーブルごとに主キーを 1 つしか持てないことだと思います。sqliteのドキュメントからの宣伝文句は次のとおりです。

「SQLite の各テーブルは、最大で 1 つの PRIMARY KEY を持つことができます。キーワード PRIMARY KEY が列定義に追加されている場合、テーブルの主キーはその単一の列で構成されます。または、PRIMARY KEY 句がテーブルとして指定されている場合-constraint の場合、テーブルの主キーは、PRIMARY KEY 句の一部として指定された列のリストで構成されます。単一の CREATE TABLE ステートメントに複数の PRIMARY KEY 句がある場合、エラーになります。

于 2013-09-17T11:00:10.230 に答える