📜  sql 约束检查日期小于当前日期 - SQL (1)

📅  最后修改于: 2023-12-03 15:05:19.137000             🧑  作者: Mango

SQL 约束检查日期小于当前日期

介绍

在 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 约束,限制日期小于当前日期。这大大增强了数据的有效性,避免了数据错误。