You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MariaDB中为BIGINT列添加特定范围约束?

为MariaDB的BIGINT列添加自定义范围约束

针对你需要的约束规则(允许0-2000000、3000001及以上的值,禁止2000001-3000000),可以直接使用MariaDB的CHECK约束来实现,这是最简洁且原生的方案(MariaDB 10.2.1及以上版本支持生效的CHECK约束)。

创建表时添加约束

如果是新建表,直接在表定义中加入约束:

CREATE TABLE your_table (
    -- 其他列定义
    target_col BIGINT NOT NULL,
    CONSTRAINT chk_target_range CHECK (
        (target_col BETWEEN 0 AND 2000000) OR 
        (target_col >= 3000001)
    )
);

为已有表添加约束

如果表已经存在,用ALTER TABLE语句添加约束:

ALTER TABLE your_table
ADD CONSTRAINT chk_target_range CHECK (
    (target_col BETWEEN 0 AND 2000000) OR 
    (target_col >= 3000001)
);

约束生效说明

当尝试插入或更新不符合规则的值(比如2500000)时,数据库会直接抛出错误,阻止操作执行,从而确保列值始终符合你的范围要求,避免多数据库共享资源池时出现值重叠的问题。

注意:如果你的MariaDB版本低于10.2.1,CHECK约束会被数据库忽略,此时需要用触发器来实现相同的验证逻辑。

内容的提问来源于stack exchange,提问作者Roger Dunn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:33:12