4

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

4

3 回答 3

4

这将取决于您的业务用例。

  • null通常表示该值未知/不存在。
  • {}另一方面意味着该值是已知的/确实存在,并且已知的值是一个空的 JSON 对象{}
于 2018-04-27T19:52:42.193 回答
1

请记住,根据文档,MySQL 在 8.0.13 版(2018 年 10 月 22 日发布)之前不允许 JSON 列使用非空默认值:

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

如果您在以前的版本上尝试它,您会收到错误:

BLOB, TEXT, GEOMETRY or JSON column 'column_name' can't have a default value

因此,如果要求向后兼容,这是{}.

于 2020-10-22T13:04:09.580 回答
1

如果您将新的 JSON 列添加到现有行, PhpMyAdmin 默认使用文本null

请注意,这与NULL. NULL表示未知/在数据库中不存在,null表示未知/转换为JSON后不存在。{}是一个空的 JSON 对象。

于 2020-05-31T11:22:48.573 回答