如何解决使用LIKE运算符的数据库表约束
我正在尝试使用like运算符在数据库表上设置约束。在Azure SQL Server中有可能吗?
我有一个FILE_NAME列,在大多数记录中都有“ VID”作为通用模式。然后,我要在另一列FILE_TYPE上设置约束,以便只能插入可能的值。
表定义:
CREATE TABLE dbo.CUST_LIBRARY
(
FILE_NAME VARCHAR(20),FILE_TYPE VARCHAR(10)
);
这是我的数据的样子:
FILE_NAME
VID_GEO_1 |
IMG-ART_1 |
TER-VID_6 |
FIL-PAR_1 |
现在,我想在FILE_TYPE列上设置约束,如果FILE_NAME中包含“ VID”,我们只能插入值“ MP4”,“ AVI”。否则,其余记录应始终默认为“ NA”,并且不应插入其他任何内容。
解决方法
您需要检查约束:
CREATE TABLE dbo.CUST_LIBRARY (
FILE_NAME VARCHAR(20),FILE_TYPE VARCHAR(10),CONSTRAINT CHK_CUST_LIBRARY
CHECK ( (FILE_TYPE IN ('MP4','AVI') AND (FILE_NAME LIKE '%VID%')) OR
FILE_TYPE = 'NA'
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。