【发布时间】: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 不是一个明智的选择。顺便说一句,谢谢您的评论。