【发布时间】:2021-12-30 12:41:42
【问题描述】:
我有一个名为 Project 的表格,其中包含开始日期和结束日期。我还有一个名为 Plan 的表,它有自己的开始和结束日期列。但我有一些方法可以验证计划的开始/结束日期是否在匹配的项目开始/结束日期之间。
我不知道在我创建表时或在计划表中插入行时添加检查是否合适。到目前为止,我都尝试过,但都没有运气。
下面的代码给我一个错误消息没有这样的列。有谁知道如何解决这个问题?提前致谢。
https://i.stack.imgur.com/UC5Ai.png
%%sql
DROP TABLE IF EXISTS Plan;
CREATE TABLE Plan (
pID varchar(255) NOT NULL UNIQUE,
projectID varchar(255) NOT NULL UNIQUE,
name varchar(255) NOT NULL DEFAULT ' ',
startDate DATE NOT NULL DEFAULT '2000-12-31',
endDate DARE NOT NULL DEFAULT '2000-12-31'
CHECK (JulianDay(startDate) <= JulianDay(endDate) AND (startDate >= Project.startDate) AND
(endDate <= Project.endDate)),
PRIMARY KEY (pID, projectID),
FOREIGN KEY (projectID) REFERENCES Project(projectID)
);
【问题讨论】:
-
请将您的查询作为问题中的文本发布,而不是作为图像的链接
-
该模型确保每个项目只能有一个计划。你确定要那个吗?
-
@TheImpaler 一个项目可以有很多计划。我做错了什么以确保每个项目只有一个计划?
-
@PMolnes 删除
ProjectID varchar(255) NOT NULL UNIQUE,行中的UNIQUE关键字 -
@TheImpaler 非常感谢!至于最初的问题,您知道我如何验证计划日期在项目日期之间吗?
标签: sql database sqlite triggers