【问题标题】:Json_valid function as a constraint in mariadbJson_valid 函数作为 mariadb 中的约束
【发布时间】:2019-02-20 14:51:50
【问题描述】:

在 mariadb 中有多种创建约束的方法。我们可以在创建表时或之后创建它们。例如,json_valid 函数可以用 3 种不同的方式定义:

1) 创建表 t2 ( j JSON 检查(JSON_VALID(j)) );

2)建表后:“Alter table t2 add check(json_valid(j))”

3) "alter table t2 add constraint something check(json_valid(j))"

哪一个更可取,为什么?

提前谢谢你。

【问题讨论】:

  • 为什么需要检查 JSON 文档是否有效?通过使用 JSON 数据类型,可以防止插入任何无效的 JSON 文档。如果您将 JSON 数据存储在 TEXT 列中,这一点很重要。
  • 您能否为该声明提供任何资源?如果 mariadb 自己检查 json 验证,这个 CHECK(json_valid(j)) 的可用性是什么?
  • 哦,你正在使用 mariadb。我认为他们只使用 TEXT 或 VARCHAR 列,这意味着他们确实允许无效的 JSON。这在他们 2017 年的博客中得到证实:mariadb.com/resources/blog/json-with-mariadb-10-2 多么令人失望。好吧,这就是我不使用 MariaDB 的原因。
  • 是的,Mariadb 将其存储为 TEXT。是的,也许 mariadb 不是一个明智的选择。顺便说一句,谢谢您的评论。

标签: mysql mariadb


【解决方案1】:

假设ALTER之前没有INSERTs,它们都是等价的。

CREATE TABLE 中执行所有操作可能会快一点。

【讨论】:

    猜你喜欢
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2014-10-20
    相关资源
    最近更新 更多