📅  最后修改于: 2023-12-03 15:05:19.137000             🧑  作者: Mango
在 SQL 中,约束(Constraint)是用于保证数据完整性的一种机制。其中,日期的约束常常用于限制数据的有效日期范围。在本文中,我们将学习如何使用 SQL 约束来限制日期在当前日期之前。
使用 SQL 中的 CHECK 约束,我们可以检查输入值是否符合某个条件。因此,我们可以在表中创建一个 CHECK 约束,用于确保日期小于当前日期。
来看如何在 CREATE TABLE 语句中添加 CHECK 约束,限制日期在当前日期之前:
CREATE TABLE example_table (
id INT PRIMARY KEY,
date_column DATE NOT NULL,
CONSTRAINT check_date CHECK (date_column <= CURRENT_DATE)
);
在上述语句中,我们使用了 CURRENT_DATE 函数,返回当前日期。DATE 类型的 date_column 列必须小于或等于当前日期,才能通过 CHECK 约束限制。
接下来,我们尝试向表中添加一条违反 CHECK 约束限制的数据:
INSERT INTO example_table (id, date_column) VALUES (1, '2022-01-01');
上述 INSERT 语句将会抛出以下错误:
ERROR: new row for relation "example_table" violates check constraint "check_date"
DETAIL: Failing row contains (1, 2022-01-01).
上述错误原因是,我们试图向表中添加的数据日期大于当前日期,违反了 CHECK 约束设置。
在 SQL 中,约束(Constraint)是用于保证数据完整性的一种机制。使用 CHECK 约束,我们可以检查输入值是否符合某个条件。在本文中,我们学习了如何使用 CHECK 约束,限制日期小于当前日期。这大大增强了数据的有效性,避免了数据错误。