我需要能够在表B中输入具有不同外键的重复条目(表B引用表A的键)。像这样:
Table A:
Record with key of 11
Record with key of 22
Table B:
Record referring to Table A record 11, with a field marked unique: value 101
Record referring to Table A record 22, with a field marked unique: value 101 <--- violates the unique key
这是我尝试过的,但没有奏效:
CREATE TABLE Readings (
SITE_ID TEXT REFERENCES SiteData
, LOOP_NBR TEXT
, LOOP_CLOSED BINARY
, SEQ INTEGER
, STA TEXT UNIQUE
, BS TEXT
, FS TEXT
, HI TEXT
, DESC TEXT
)
INSERT INTO Readings (SITE_ID, SEQ) VALUES (' + databaseKey + ', 0)
有人知道怎么做吗?
答案 0 :(得分:1)
如果表B对列具有唯一约束,那么如果要在该列中输入重复值,则必须删除唯一约束。
修改:换句话说,从表格创建代码中删除单词UNIQUE
。我假设“标记为唯一的字段”指的是STA
列,因为这是您在那里唯一的唯一列。
编辑第二个:根据您在下面的评论,您希望对SITE_ID
和STA
字段的唯一组合设置约束。您将SQL查询更改为:
CREATE TABLE Readings (
SITE_ID TEXT REFERENCES SiteData,
LOOP_NBR TEXT,
LOOP_CLOSED BINARY,
SEQ INTEGER,
STA TEXT,
BS TEXT,
FS TEXT,
HI TEXT,
DESC TEXT,
CONSTRAINT UNIQUE (SITE_ID, STA)
)
答案 1 :(得分:0)
CREATE TABLE Readings (
SITE_ID TEXT UNIQUE REFERENCES SiteData
, LOOP_NBR TEXT
, LOOP_CLOSED BINARY
, SEQ INTEGER
, STA TEXT UNIQUE
, BS TEXT
, FS TEXT
, HI TEXT
, DESC TEXT
)
将UNIQUE添加到外键将仅拒绝具有相同SITE_ID和STA
的行