我新的SQL,我有点挣扎 -了解违反约束SQL
考虑下一个代码片段:
CREATE TABLE Trip
(
tnum INTEGER PRIMARY KEY,
location TEXT NOT NULL,
duration INTEGER DEFAULT(5),
difficulty INTEGER CHECK(difficulty > 0 AND difficulty < 7),
CHECK (difficulty <= 6 AND difficulty >= 3)
);
CREATE TABLE Company
(
cid INTEGER PRIMARY KEY,
diffiname TEXT NOT NULL,
estYear Integer NOT NULL
);
CREATE TABLE Offer
(
cid INTEGER,
tnum INTEGER,
FOREIGN KEY(cid) REFERENCES Company(cid),
FOREIGN KEY(tnum) REFERENCES Trip(tnum)
);
我遇到2个约束违规,第一个是,我能够与difficulty
0,或旅行用difficulty
7添加Trips
与duration
2(期望约束 - 持续时间的旅程超过6具有至少3个难度) -
而第二次违规行为是我能够添加Offer
s,其中包含tnum
和cid
甚至不存在。
“(难度<= 6或持续时间> = 3)” - 您能否想到一个数字无法通过此测试? –
@DavidAldridge是你可能想要的'(持续时间<= 6 AND难度> = 3)' –
你们是对的,但仍然如你所说修正后,约束仍然违反 –