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

Ubuntu 20.04下eXtremeDB外键约束失效原因咨询

eXtremeDB嵌入式版本外键约束失效的原因及解决办法

核心原因:嵌入式模式默认关闭外键约束检查

eXtremeDB为适配嵌入式场景的性能需求,默认不会强制执行外键约束。这就导致你写的外键声明仅被语法解析,但实际未生效,数据库不会校验关联表的数据是否存在。

具体解决步骤

  • 初始化数据库时启用外键支持
    如果用C API初始化数据库,需要在mco_db_params_t结构体的flags字段中添加MCO_DB_FOREIGN_KEYS;如果通过SQL接口启动,连接时需指定FOREIGN_KEYS=ON参数,或者执行以下SQL开启约束检查:

    SET FOREIGN_KEY_CHECKS = 1;
    

    注意:该配置必须在创建表之前设置,否则已创建的表不会自动启用约束,需要重新执行建表语句。

  • 确认外键约束已被注册
    你提到元表中查询不到被引用列,说明外键未被数据库识别。启用外键支持后重新执行建表语句,再查询元表就能看到对应的外键关联信息。

  • 验证约束生效
    重新建表后尝试插入那条无效数据,正常情况下会直接抛出外键约束违反的错误,这就说明约束已生效。

内容的提问来源于stack exchange,提问作者Xavier Z

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:57:52