SQL-使用两列将约束添加到实体

问题描述 投票:0回答:1

我将此表称为pc_table

MODEL   SPEED   PRICE
1012    350     799
1001    700     799
1008    700     999
1013    733     1500
1010    750     699
1003    866     1500
1004    866     999
1005    1000    1499
1011    1100    1299
1009    1200    1699
1006    1300    2119
1007    1400    2299
1002    1500    2499

我必须将此约束添加到我的表中:if speed < 1200: price must be less than 1500

我写了这行:ALTER TABLE pc_table ADD CHECK (speed < 1200 AND price <= 1500);

但是不正确,我将不胜感激!

sql sql-server constraints
1个回答
2
投票

您想要的逻辑是:

ALTER TABLE pc_table ADD CHECK (speed >= 1200 OR price <= 1500)

您也可以这样表达-也许更接近您的意图-如:

ALTER TABLE pc_table ADD CHECK (NOT (speed < 1200 AND price > 1500) );

注意:NULL值通过了检查约束。因此,如果您要禁止使用NULL值,则需要进行额外的检查。

© www.soinside.com 2019 - 2024. All rights reserved.