我正在创建一个需要来自= date和= date的字段的sql表,但我想制定一个约束,以便不能在之前.我的程序将检查它,但我想学习如何使用sql强制执行它.
@H_301_2@我之前编写过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