2015-11-14 57 views
-2

我对SQL很新,但是我正在创建表。约束检查必须是其中一个或另一个

我需要确保列TypeAvailableUnavailable只能输入。我不知道如果CHECK约束是正确的:

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

或者,如果有使用任何其他Oracle代码?感谢您的帮助!

回答

0

您可以使用:

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

SqlFiddleDemo

你的表名不能包含空格,因为它是不好的做法。如果你需要空格引用它们反斜杠MariaDB/MySQL,方括号SQL Server," Oracle。

+0

谢谢,但 - 我仍然在做我的学位和数据库是我的第一个主题,但这真的有帮助,虽然谢谢! – Zee

+1

实际上'''是标准定义引用标识符的东西,它不是特定于Oracle的,标准引用可以在其他DBMS中使用,如果配置正确 –

1

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

+0

非常感谢! – Zee

相关问题