我的字段定义总是出现语法错误。
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自己看看。