11

我正在创建一个需要字段from=dateto=date的 SQL 表,但我想做出一个约束,以便不能在from之前。我的程序会检查它,但我想学习如何使用 SQL 来执行它。我以前写过 SQL,但从未真正使用过约束,也不知道它们是如何工作的。

所以问题是:使用标准 SQL,我如何确保FromTo之前?

4

2 回答 2

16
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

于 2012-12-05T21:02:46.630 回答
0

我认为这对于 sql server、mysql 和 oracle 来说都可以

ALTER TABLE myTbl
ADD CONSTRAINT chk_Dates CHECK (dtFrom < dtTo)
于 2012-12-05T21:03:27.107 回答