将默认的MYSQL JSON值设为 `{}` 还是 `NULL` 更好?

7

我们开始使用MySQL的json数据类型。在将默认值存储为NULL{}用于JSON数据类型时,是否有任何推荐的最佳实践?它们各自的优点和缺点是什么?


2
这些并不具有相同的含义,因此取决于您的业务需求。 - Shadow
4个回答

5

这取决于您的业务用例。

  • null通常表示值未知/不存在。
  • 另一方面,{}表示该值已知/存在,并且已知值是一个空的JSON对象{}

4
请注意,根据文档,在MySQL 8.0.13版本之前(发布于2018年10月22日),JSON列不允许非空默认值:

在MySQL 8.0.13之前,JSON列不能有非NULL的默认值。

如果您尝试在旧版本上设置非空默认值,将会出现错误: BLOB、TEXT、GEOMETRY或JSON列“column_name”不能有默认值 因此,如果需要向后兼容性,则这对空值 {} 是一个缺点。

1
PhpMyAdmin默认使用文本null,如果您向现有行添加新的JSON列。
请注意,这与NULL不同。 NULL表示数据库中未知/不存在,null表示转换为JSON后未知/不存在。{}是一个空的JSON对象。

0

[42000][1101] BLOB、TEXT、GEOMETRY 或 JSON 列 'xxxx' 不能有默认值。


1
目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接