我正在创建一个需要字段from=date和to=date的 SQL 表,但我想做出一个约束,以便不能在from之前。我的程序会检查它,但我想学习如何使用 SQL 来执行它。我以前写过 SQL,但从未真正使用过约束,也不知道它们是如何工作的。
所以问题是:使用标准 SQL,我如何确保From在To之前?
我正在创建一个需要字段from=date和to=date的 SQL 表,但我想做出一个约束,以便不能在from之前。我的程序会检查它,但我想学习如何使用 SQL 来执行它。我以前写过 SQL,但从未真正使用过约束,也不知道它们是如何工作的。
所以问题是:使用标准 SQL,我如何确保From在To之前?
create table foo
(
from_date date,
to_date date,
constraint check_dates check (from_date < to_date)
);
或者,如果您需要将其应用于现有表,请使用:
alter table foo
add constraint check_dates check (from_date < to_date);
PostgreSQL 手册包含一个关于检查约束的好章节:http ://www.postgresql.org/docs/current/static/ddl-constraints.html#AEN2410
我认为这对于 sql server、mysql 和 oracle 来说都可以
ALTER TABLE myTbl
ADD CONSTRAINT chk_Dates CHECK (dtFrom < dtTo)