【问题标题】:I keep getting a syntax error when I try to check for int values in a substring?当我尝试检查子字符串中的 int 值时,我不断收到语法错误?
【发布时间】:2019-05-28 14:43:43
【问题描述】:

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

cityCode
Cott1254
Stam2512
Berl0102

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

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

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

有什么建议吗?

提前致谢。

【问题讨论】:

    标签: mysql sql database error-handling syntax


    【解决方案1】:

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

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

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

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

    【讨论】:

    • MySQL 确实在 8.0.16 中实现了 CHECK 约束
    猜你喜欢
    • 2016-05-05
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2021-03-29
    相关资源
    最近更新 更多