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