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

我认为问题在于每个表只能有一个主键。这是来自 sqlite 文档的简介:

“SQLite 中的每个表最多可以有一个 PRIMARY KEY。如果将关键字 PRIMARY KEY 添加到列定义中,则该表的主键由该单个列组成。或者,如果将 PRIMARY KEY 子句指定为表-constraint,则表的主键由指定为 PRIMARY KEY 子句的一部分的列列表组成。如果单个 CREATE TABLE 语句中有多个 PRIMARY KEY 子句,则错误。

于 2013-09-17T11:00:10.230 回答