使用单列约束格式时的限制

当使用单列约束格式定义检查约束时,该检查约束无法依赖表中其它列的值。以下示例将创建有两列具有检查约束的 my_accounts 表,每个约束都是单列约束格式:
CREATE TABLE my_accounts (
        chk_id   SERIAL PRIMARY KEY,
        acct1    MONEY CHECK (acct1 BETWEEN 0 AND 99999),
        acct2    MONEY CHECK (acct2 BETWEEN 0 AND 99999));

acct1 acct2 都是 MONEY 数据类型的列,其值必须在 099999 之间。然而,如果您想测试 acct1 的余额是否比 acct2 多,则不能使用单列约束格式。如果要创建在多列中检查值的约束,则必须使用多列约束格式