如何创建一个表,scheduledate下的所有行都是相同的日期9/21/2018?



我的字段定义总是出现语法错误。

CREATE TABLE Sept21(
OrderNum INT, 
TaskID VARCHAR(5), 
Description VARCHAR(50), 
ScheduledDate DATE,
QuotedPrice DECIMAL(15, 2)
);
INSERT INTO Sept21(ScheduledDate)
VALUES('9/21/2018');

如果您希望表中的每一行对于列ScheduledDate都具有值9/21/2018,则应该使用约束。在您的例子中,您希望在插入行之前CHECK值满足某些条件。

CREATE TABLE Sept21(
OrderNum INT, 
TaskID VARCHAR(5), 
Description VARCHAR(50), 
ScheduledDate DATE,
QuotedPrice DECIMAL(15, 2),
CONSTRAINT ScheduledDateIsSept21In2018 CHECK (ScheduledDate = '9/21/2018')
);

这将确保不能将一行插入到表中,除非满足CHECK约束的条件。

例如,下面的INSERT语句将传递CHECK约束,并将该行插入表中:

INSERT INTO Sept21 VALUES
(123, 'ABCDE', 'Some Description', '2018-09-21', 15.5);

虽然INSERT语句会失败(因为日期不符合CHECK约束的条件),并且不会插入行:

INSERT INTO Sept21 VALUES
(123, 'ABCDE', 'Some Description', 'Mar 13, 2019', 15.5)

你可以用这个SQL Fiddle自己看看。

最新更新