使用 CHECK 条件可以确保列中的值满足某个条件或规则。这些规则或条件可能需要用来验证数据是否正确,或者可能需要使用更严格的规则来反映公司的政策和程序。如果某列的有效值限制在一定范围内,则可以单独在该列上使用 CHECK 条件。
CHECK 条件就位后,修改行之前将依据此条件来评估将来值。更新具有检查约束的值时,将检查该值的约束以及该行其它值的约束。
也可以在域中附加 CHECK 约束。请参见从域继承列 CHECK 约束。
可以实施特定的格式要求。例如,如果表中有一列用于存储电话号码,您可能希望确保用户以相同的格式输入电话号码。对于北美洲电话号码,可以使用类似以下约束:
ALTER TABLE Customers ALTER Phone CHECK ( Phone LIKE '(___) ___-____' ); |
CHECK 条件就位后,如果您尝试将 Phone 值设置为 9835,将不允许进行此更改。
可以确保输入的值与一组有限数量的值中的一个相匹配。例如,要确保 City 列只包含几个允许城市(例如,公司设有办事处的那些城市)之一,可以使用以下约束:
ALTER TABLE Customers ALTER City CHECK ( City IN ( 'city_1', 'city_2', 'city_3' ) ); |
缺省情况下,比较字符串时不区分大小写,除非创建数据库时显式指定需要区分大小写。
可以确保日期或数字在特定的范围内。例如,您可能需要使用以下约束确保雇员的 StartDate 列在公司成立日期和当前日期之间:
ALTER TABLE Employees ALTER StartDate CHECK ( StartDate BETWEEN '1983/06/27' AND CURRENT DATE ); |
有多种日期格式可以使用。不管当前选项如何设置,数据库始终都可以识别本例中使用的 YYYY/MM/DD 格式。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |