当我尝试在定义多个字段的外键约束的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"
有人知道如何解决这个问题吗?
我认为
问题是每个表只能有一个主键。 以下是 sqlite 文档中的简介:
"SQLite中的每个表最多可以有一个主键。如果将关键字 PRIMARY KEY 添加到列定义中,则表的主键由该单个列组成。或者,如果将 PRIMARY KEY 子句指定为表约束,则表的主键由指定为 PRIMARY KEY 子句一部分的列列表组成。如果单个 CREATE TABLE 语句中有多个 PRIMARY KEY 子句,则为错误。