约束检查必须是一个或另一个

时间:2015-11-14 05:03:05

标签: sql oracle

我对SQL很新,但我正在创建表。

我需要确保只能输入TypeAvailableUnavailable。我不确定CHECK约束是否正确:

CONSTRAINT Delivery Driver Type,
CHECK (Delivery Driver Type in Available, Unavailable)

或者是否还有其他Oracle代码可供使用?感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

如果您认为将来可能需要超过delivery_driver_type的两个值,则应考虑使用查找表,并使用外键约束连接两个表。

答案 1 :(得分:0)

您可以使用:

ALTER TABLE tab_name
ADD CONSTRAINT Cnt_Delivery_Driver_Type
CHECK (Delivery_Driver_Type IN ('Available', 'Unavailable'));

SqlFiddleDemo

您的表名不应包含空格,因为这是不好的做法。如果您需要空格,请使用反引号MariaDB/MySQL,方括号SQL Server" Oracle来引用它们。