11

フィールドfrom=dateおよびto=dateを必要とする SQL テーブルを作成していますが、 toがfrom の前にならないように制約を設定したいと考えています。私のプログラムはそれをチェックしますが、SQL で強制する方法を知りたいです。以前に SQL を書いたことがありますが、制約を実際に使用したことがなく、それらがどのように機能するかわかりません。

問題は、標準 SQL を使用して、FromがToの前にあることを確認するにはどうすればよいかということです。

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サーバー、mysql、Oracleでは問題ないと思います

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