SQLMetal - 具有多个字段的外键约束 - 错误

时间:2013-09-17 09:52:09

标签: sql linq sqlite foreign-keys sqlmetal

当我尝试在多个字段上定义外键约束的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"

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我认为问题是每个表只能有一个主键。这是sqlite文档中的模糊:

“SQLite中的每个表最多只能有一个PRIMARY KEY。如果将关键字PRIMARY KEY添加到列定义中,则表的主键由该单个列组成。或者,如果指定了PRIMARY KEY子句作为表约束,表的主键包含作为PRIMARY KEY子句的一部分指定的列的列表。如果在单个CREATE TABLE语句中有多个PRIMARY KEY子句,则表示错误。