尝试检查子字符串中的int值时,我不断收到语法错误?

时间:2019-05-28 14:43:43

标签: mysql sql database error-handling syntax

对于作业分配,我必须检查VARCHAR中的int值,例如: 我的值看起来像这样:

cityCode
Cott1254
Stam2512
Berl0102

我希望能够检查这些表中的int值的总和,并确保它们是大于0的偶数

我尝试了以下操作,但是我收到了语法错误,这仅用于检查整数是否大于0。主要问题是解决我得到的语法错误。

CHECK SUBSTR(CAST(accommodatiecode, 5,4) AS INT)> 0;

有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

MySQL(历史上)不实现检查约束。但是正确的语法是:

alter table t add constraint chk_t_col
    check (SUBSTR(accommodatiecode, 5, 4) + 0) > 0);

这当然不会检查偶数或奇数。那会更像:

accomodatiecode regexp '[0-9]{4}[02468]$'